another gcc sign fix.
Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
--- tools/libxc/xc_load_aout9.c.old 2005-06-24 14:50:16.000000000
-0500
+++ tools/libxc/xc_load_aout9.c 2005-06-24 15:02:08.000000000 -0500
@@ -19,7 +19,7 @@
static int parseaout9image(char *, unsigned long, struct
domain_setup_info *);
static int loadaout9image(char *, unsigned long, int, u32, unsigned
long *, struct domain_setup_info *);
static void copyout(int, u32, unsigned long *, unsigned long, void *,
int);
-struct Exec *get_header(unsigned char *, unsigned long, struct Exec *);
+struct Exec *get_header(char *, unsigned long, struct Exec *);
int
@@ -139,7 +139,7 @@ copyout(
*/
struct Exec *
get_header(
- unsigned char *image,
+ char *image,
unsigned long image_size,
struct Exec *ehdr)
{
--
Jerone Young
IBM Linux Technology Center
jyoung5@us.ibm.com
512-838-1157 (T/L: 678-1157)
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
> another gcc sign fix.This fix is bad. The proper fix is to add a cast. An unsigned buffer will result in incorrect extraction of big-endian values.> -struct Exec *get_header(unsigned char *, unsigned long, struct Exec *); > +struct Exec *get_header(char *, unsigned long, struct Exec *);> struct Exec * > get_header( > - unsigned char *image, > + char *image, > unsigned long image_size, > struct Exec *ehdr)> Jerone Young > jyoung5@us.ibm.comTim Newsham http://www.lava.net/~newsham/ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
There are bit shifting operations inside of get_header() that, imho, will break if you turn image signed. On Fri, Jun 24, 2005 at 03:16:28PM -0500, Jerone Young wrote:> another gcc sign fix. > > Signed-off-by: Jerone Young <jyoung5@us.ibm.com> > --- tools/libxc/xc_load_aout9.c.old 2005-06-24 14:50:16.000000000 > -0500 > +++ tools/libxc/xc_load_aout9.c 2005-06-24 15:02:08.000000000 -0500 > @@ -19,7 +19,7 @@ > static int parseaout9image(char *, unsigned long, struct > domain_setup_info *); > static int loadaout9image(char *, unsigned long, int, u32, unsigned > long *, struct domain_setup_info *); > static void copyout(int, u32, unsigned long *, unsigned long, void *, > int); > -struct Exec *get_header(unsigned char *, unsigned long, struct Exec *); > +struct Exec *get_header(char *, unsigned long, struct Exec *); > > > int > @@ -139,7 +139,7 @@ copyout( > */ > struct Exec * > get_header( > - unsigned char *image, > + char *image, > unsigned long image_size, > struct Exec *ehdr) > { > > -- > Jerone Young > IBM Linux Technology Center > jyoung5@us.ibm.com > 512-838-1157 (T/L: 678-1157) > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel-- Flávio Bruno Leitner <fbl@conectiva.com.br> [0EA2 7F40 4CF4 1E63 4AF6 33C0 3E10 E205 F251 EDDA] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel