All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xc_inflate_buffer fix
@ 2006-03-15 17:56 David Lively
  2006-03-15 19:59 ` David Lively
  2006-03-17 10:38 ` Keir Fraser
  0 siblings, 2 replies; 3+ messages in thread
From: David Lively @ 2006-03-15 17:56 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 557 bytes --]

Hi -
   I notice some of my initrds are failing to gunzip:
ERROR: inflate failed, sts -5
   These same initrds work fine with Ben Thomas' original
patch introducing xc_{linux,hvm}_build_mem.  The checked-in
version changed some declarations from unsigned char * to
char *, breaking the output length computation in xc_inflate_buffer.
   This patch assumes you want to keep using the signed char *
for the interface, so it simply inserts a few casts to unsigned.
Tested lightly, but the bug is pretty obvious once you notice
the signedness change ...

Dave


[-- Attachment #2: xc-inflate-buffer-fix.patch --]
[-- Type: text/x-patch, Size: 824 bytes --]

diff -r 1d741a415927 tools/libxc/xg_private.c
--- a/tools/libxc/xg_private.c	Wed Mar 15 11:48:33 2006 -0500
+++ b/tools/libxc/xg_private.c	Wed Mar 15 12:28:05 2006 -0500
@@ -77,10 +77,11 @@ char *xc_inflate_buffer(const char *in_b
         return (char *)in_buf;
     }
 
-    out_len = in_buf[in_size-4] +
-        (256 * (in_buf[in_size-3] +
-                (256 * (in_buf[in_size-2] +
-                        (256 * in_buf[in_size-1])))));
+    out_len = (unsigned char)in_buf[in_size-4] +
+        (256 * ((unsigned char)in_buf[in_size-3] +
+                (256 * ((unsigned char)in_buf[in_size-2] +
+                        (256 * (unsigned char)in_buf[in_size-1])))));
+
     bzero(&zStream, sizeof(zStream));
     out_buf = malloc(out_len + 16);        /* Leave a little extra space */
     if ( out_buf == NULL )

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-03-17 10:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-15 17:56 [PATCH] xc_inflate_buffer fix David Lively
2006-03-15 19:59 ` David Lively
2006-03-17 10:38 ` Keir Fraser

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.