diff --git a/ChangeLog b/ChangeLog index 8fa0a9f55..e40f7e902 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-06-21 Vladimir Serbinenko + + * grub-core/kern/main.c (grub_set_prefix_and_root): Fix memory leak. + * grub-core/net/drivers/ieee1275/ofnet.c + (grub_ieee1275_net_config_real): Likewise. + 2012-06-21 Vladimir Serbinenko * grub-core/net/bootp.c (grub_net_configure_by_dhcp_ack): Don't create diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c index de9ba927e..326244419 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c @@ -165,8 +165,12 @@ grub_set_prefix_and_root (void) grub_free (device); device = new_device; } + else + grub_free (fwdevice); if (fwpath && !path) path = fwpath; + else + grub_free (fwpath); if (device) { char *prefix_set; diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c index 44aa2fdf3..7e8e2a744 100644 --- a/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c @@ -193,6 +193,7 @@ grub_ieee1275_net_config_real (const char *devpath, char **device, char **path) + bootp_response_properties[i].offset), size - bootp_response_properties[i].offset, 1, device, path); + grub_free (bootp_response); return; } }