From: Pavel Roskin <pro...@gnu.org>
Date: Sun, 12 Apr 2009 02:39:22 -0400

> On Sat, 2009-04-11 at 01:08 -0700, David Miller wrote:
>> The grub printf code tries to treat 'long' and 'int' the same,
>> that doesn't work on (most) 64-bit platforms.
> 
>> +      n = (unsigned) (-((long) n));
> 
> "unsigned" means "unsigned int".  You need "unsigned long" here.

Thanks, I'll fix this as follows.

        * kern/misc.c (grub_ltoa): Fix cast when handling negative
        values.  Noticed by Pavel Roskin.

--- kern/misc.c (revision 2086)
+++ kern/misc.c (working copy)
@@ -598,7 +598,7 @@
 
   if ((long) n < 0 && c == 'd')
     {
-      n = (unsigned) (-((long) n));
+      n = (unsigned long) (-((long) n));
       *str++ = '-';
     }
 


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to