Make sure that there is at least 8 bytes available to be read,
and only read exactly 8 bytes. 

Signed-off-by: Simon Horman <[EMAIL PROTECTED]>

Index: kexec-tools-testing/kexec/arch/ppc64/fs2dt.c
===================================================================
--- kexec-tools-testing.orig/kexec/arch/ppc64/fs2dt.c   2006-12-11 
14:46:20.000000000 +0900
+++ kexec-tools-testing/kexec/arch/ppc64/fs2dt.c        2006-12-11 
14:47:16.000000000 +0900
@@ -114,11 +114,15 @@
 static void add_usable_mem_property(int fd, int len)
 {
        char fname[MAXPATH], *bname;
-       char buf[MAXBYTES +1];
+       unsigned long long buf[2];
        unsigned long ranges[2*MAX_MEMORY_RANGES];
        unsigned long long base, end, loc_base, loc_end;
        int range, rlen = 0;
 
+       if (len < 2 * sizeof(unsigned long long))
+               die("unrecoverable error: not enough data for mem property\n");
+       len = 2 * sizeof(unsigned long long);
+
        strcpy(fname, pathname);
        bname = strrchr(fname,'/');
        bname[0] = '\0';

--

-- 
Horms
  H: http://www.vergenet.net/~horms/
  W: http://www.valinux.co.jp/en/

_______________________________________________
fastboot mailing list
fastboot@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/fastboot

Reply via email to