Subject: [PATCH guile-zlib] zlib.scm: Fix uncompress for native 32-bit systems.

From: Efraim Flashner <[email-masked]>
Date: Thu, 9 Jan 2025 12:18:00 +0200

* zlib.scm (uncompress): Use the sizeof an unsigned-long for all size
calculations instead of forcing 64-bit integers.
---

I tested this (all the tests passed) using the guix.scm in the repo using:
guix build -f guix.scm
guix build -f guix.scm --system=i686-linux
guix build -f guix.scm --system=powerpc-linux (with offloading to an
actual powerpc-linux machine)

 zlib.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/zlib.scm b/zlib.scm
index 86ca4fc..a0702dc 100644
--- a/zlib.scm
+++ b/zlib.scm
@@ -425,9 +425,10 @@ require PORT to be a file port."
 the uncompressed data."
   (define (try-uncompress length)
     (let* ((dest (make-bytevector (* (sizeof uint8) length)))
-           (dest-length   (make-bytevector 8))
-           (source-length (make-bytevector 8)))
-      (bytevector-u64-set! source-length 0 length (native-endianness))
+           (dest-length   (make-bytevector (sizeof unsigned-long)))
+           (source-length (make-bytevector (sizeof unsigned-long))))
+      (bytevector-uint-set! source-length 0 length
+                            (native-endianness) (sizeof unsigned-long))
       (bytevector-uint-set! dest-length 0 length
                             (native-endianness) (sizeof unsigned-long))
       (let ((result (%uncompress2 (bytevector->pointer dest)

base-commit: cfaf683579a97630040efe4b7596af4bc519b05e
-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted