* 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.
This commit is contained in:
parent
5ae584c0b0
commit
9afe2053c9
2 changed files with 9 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2014-01-26 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* 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 <arvidjaar@gmail.com>
|
2014-01-25 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||||
|
|
||||||
|
|
|
@ -338,23 +338,23 @@ grub_serial_register (struct grub_serial_port *port)
|
||||||
grub_free (indata);
|
grub_free (indata);
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
out = grub_malloc (sizeof (*out));
|
out = grub_zalloc (sizeof (*out));
|
||||||
if (!out)
|
if (!out)
|
||||||
{
|
{
|
||||||
grub_free (in);
|
|
||||||
grub_free (indata);
|
grub_free (indata);
|
||||||
grub_free ((char *) in->name);
|
grub_free ((char *) in->name);
|
||||||
|
grub_free (in);
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
outdata = grub_malloc (sizeof (*outdata));
|
outdata = grub_malloc (sizeof (*outdata));
|
||||||
if (!outdata)
|
if (!outdata)
|
||||||
{
|
{
|
||||||
grub_free (in);
|
|
||||||
grub_free (indata);
|
grub_free (indata);
|
||||||
grub_free ((char *) in->name);
|
grub_free ((char *) in->name);
|
||||||
grub_free (out);
|
grub_free (out);
|
||||||
|
grub_free (in);
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue