[arch-releng] [RFC] [PATCH] [archiso] Avoid integer overflow when .fs is > 10.2G

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Tue Jan 8 18:21:28 EST 2013


---
 archiso/initcpio/hooks/archiso | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/archiso/initcpio/hooks/archiso b/archiso/initcpio/hooks/archiso
index 491ed2f..66a6273 100644
--- a/archiso/initcpio/hooks/archiso
+++ b/archiso/initcpio/hooks/archiso
@@ -11,7 +11,12 @@ _mnt_fs() {
     ro_dev=$(losetup --find --show --read-only "${img}")
     echo ${ro_dev} >> /run/archiso/used_block_devices
     ro_dev_size=$(blockdev --getsz ${ro_dev})
-    rw_dev_size=$((ro_dev_size*cowfile_size/100))
+    if [[ "${cowfile_size}" == "100" ]]; then
+        rw_dev_size=${ro_dev_size}
+    else
+        # size calculation done in this way to avoid integer overflow when ro_dev_size is > 10.2G
+        rw_dev_size=$((ro_dev_size/100*cowfile_size))
+    fi
 
     if [[ "${cow_persistent}" == "P" ]]; then
         if [[ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
-- 
1.8.1



More information about the arch-releng mailing list