[v2] Fix ZeroDivisionError for kernels without modules

Message ID 20260417114032.1255396-1-stefan-koch@siemens.com
State New
Headers show
Series [v2] Fix ZeroDivisionError for kernels without modules | expand

Commit Message

Koch, Stefan April 17, 2026, 11:40 a.m. UTC
Ensure that `num_pkgs` is at least 1 to avoid division by zero.

Fixes: 938dab36 ("Report approximate progress during initrd generation")

Signed-off-by: Stefan Koch <stefan-koch@siemens.com>
---
 meta/lib/rootfs_progress.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

MOESSBAUER, Felix April 17, 2026, 12:10 p.m. UTC | #1
On Fri, 2026-04-17 at 13:40 +0200, Stefan Koch wrote:
> Ensure that `num_pkgs` is at least 1 to avoid division by zero.
> 
> Fixes: 938dab36 ("Report approximate progress during initrd generation")

Thanks!

Reviewed-by: Felix Moessbauer <felix.moessbauer@siemens.com>

This should also go into the v1.0.1 release.

Felix

> 
> Signed-off-by: Stefan Koch <stefan-koch@siemens.com>
> ---
>  meta/lib/rootfs_progress.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/lib/rootfs_progress.py b/meta/lib/rootfs_progress.py
> index 6feed9df..58d16574 100644
> --- a/meta/lib/rootfs_progress.py
> +++ b/meta/lib/rootfs_progress.py
> @@ -77,7 +77,7 @@ class InitrdProgressHandler(PkgsProgressHandler):
>          m = re.search(r'^Total number of modules: ([0-9]+)', line)
>          if m:
>              # in MODULES=most mode, we install ~half of all modules
> -            self._num_pkgs = int(m.group(1)) // 2
> +            self._num_pkgs = max(1, int(m.group(1)) // 2)
>              self._stage = 'post-prepare'
>  
>      def process_line(self, line):
> -- 
> 2.47.3

Patch

diff --git a/meta/lib/rootfs_progress.py b/meta/lib/rootfs_progress.py
index 6feed9df..58d16574 100644
--- a/meta/lib/rootfs_progress.py
+++ b/meta/lib/rootfs_progress.py
@@ -77,7 +77,7 @@  class InitrdProgressHandler(PkgsProgressHandler):
         m = re.search(r'^Total number of modules: ([0-9]+)', line)
         if m:
             # in MODULES=most mode, we install ~half of all modules
-            self._num_pkgs = int(m.group(1)) // 2
+            self._num_pkgs = max(1, int(m.group(1)) // 2)
             self._stage = 'post-prepare'
 
     def process_line(self, line):