From: Vladimir Serbinenko Date: Sun, 26 Jan 2014 01:36:05 +0000 (+0100) Subject: * grub-core/term/serial.c (grub_serial_register): Fix invalid free. X-Git-Tag: 2.02-beta3~677 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9afe2053c9b37820888bd5e77acd35c0eacf6699;p=thirdparty%2Fgrub.git * grub-core/term/serial.c (grub_serial_register): Fix invalid free. Ensure that pointers are inited to NULL and that pointers are not accessed after free. --- diff --git a/ChangeLog b/ChangeLog index c93f11fbb..67b4d5c2a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-01-26 Vladimir Serbinenko + + * grub-core/term/serial.c (grub_serial_register): Fix invalid free. + Ensure that pointers are inited to NULL and that pointers are not + accessed after free. 2014-01-25 Andrey Borzenkov diff --git a/grub-core/term/serial.c b/grub-core/term/serial.c index b581a763e..c9b5574ae 100644 --- a/grub-core/term/serial.c +++ b/grub-core/term/serial.c @@ -338,23 +338,23 @@ grub_serial_register (struct grub_serial_port *port) grub_free (indata); return grub_errno; } - - out = grub_malloc (sizeof (*out)); + + out = grub_zalloc (sizeof (*out)); if (!out) { - grub_free (in); grub_free (indata); grub_free ((char *) in->name); + grub_free (in); return grub_errno; } outdata = grub_malloc (sizeof (*outdata)); if (!outdata) { - grub_free (in); grub_free (indata); grub_free ((char *) in->name); grub_free (out); + grub_free (in); return grub_errno; }