From db5ae694f5e18c847b0e0dbe9a3d2c95239a7d33 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 26 Jan 2014 02:36:05 +0100 Subject: [PATCH 046/261] * 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. --- ChangeLog | 5 +++++ grub-core/term/serial.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) 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; } -- 2.13.5