extlinux: Avoid dereferencing a garbage pointer
authorMatt Fleming <matt.fleming@intel.com>
Fri, 2 Nov 2012 17:02:36 +0000 (17:02 +0000)
committerMatt Fleming <matt.fleming@intel.com>
Mon, 5 Nov 2012 08:59:24 +0000 (08:59 +0000)
If opt.reset_adv is set the call to ext_read_adv() is skipped which
would have initialised 'filename'. This means that a pointer
containing random data from the stack is passed to ext_write_adv().

Just delete the opt.reset_adv logic since modify_adv() handles that
case anyway.

Reported-by: Frediano Ziglio <frediano.ziglio@citrix.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
extlinux/main.c

index f0d8e11..dbf538a 100644 (file)
@@ -1236,9 +1236,7 @@ int modify_existing_adv(const char *path)
     if (devfd < 0)
        return 1;
 
-    if (opt.reset_adv)
-       syslinux_reset_adv(syslinux_adv);
-    else if (ext_read_adv(path, devfd, &filename) < 0) {
+    if (ext_read_adv(path, devfd, &filename) < 0) {
        close(devfd);
        return 1;
     }