Mail archive
alpine-devel

Re: [alpine-devel] [PATCH] abuild: avoid division by zero when calculating human size for packages

From: Natanael Copa <ncopa_at_alpinelinux.org>
Date: Wed, 28 Oct 2015 15:32:17 +0100

On Sat, 17 Oct 2015 15:49:58 +0200
Christian Kampka <christian_at_kampka.net> wrote:

> ---
> abuild.in | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/abuild.in b/abuild.in
> index 3b6fe04..2642fdf 100644
> --- a/abuild.in
> +++ b/abuild.in
> _at_@ -1253,8 +1253,12 @@ scan_pkgconfig_depends() {
> # read size in bytes from stdin and show as human readable
> human_size() {
> awk '{ split("B KB MB GB TB PB", type)
> - for(i=5; y < 1; i--)
> - y = $1 / (2**(10*i))
> + if($1 == 0)
> + # avoid division by zero
> + y = 0
> + else
> + for(i=5; y < 1; i--)
> + y = $1 / (2**(10*i))
> printf("%.1f %s\n", y, type[i+2]) }'
> }
>
> _at_@ -2209,4 +2213,3 @@ for i in $install_after; do
> done
>
> cleanup
> -

Applied the simplified version as discussed on irc:

_at_@ -1253,7 +1253,7 @@ scan_pkgconfig_depends() {
 # read size in bytes from stdin and show as human readable
 human_size() {
         awk '{ split("B KB MB GB TB PB", type)
- for(i=5; y < 1; i--)
+ for(i=5; y < 1 && $1 > 0; i--)
                         y = $1 / (2**(10*i))
                 printf("%.1f %s\n", y, type[i+2]) }'
 }

Thanks!

-nc



---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Wed Oct 28 2015 - 15:32:17 GMT