[libvirt] [PATCH] Fix a memory leak in the node_device_udev code

We were over-writing a pointer without freeing it in case of a disk device, leading to a memory leak. Signed-off-by: Chris Lalancette <clalance@redhat.com> --- src/node_device/node_device_udev.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 3a5a7e2..bcfe991 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -815,13 +815,6 @@ static int udevProcessDisk(struct udev_device *device, union _virNodeDevCapData *data = &def->caps->data; int ret = 0; - data->storage.drive_type = strdup("disk"); - if (data->storage.drive_type == NULL) { - virReportOOMError(); - ret = -1; - goto out; - } - if (udevGetUint64SysfsAttr(device, "size", &data->storage.num_blocks) == PROPERTY_ERROR) { -- 1.6.6.1

On 04/28/2010 02:27 PM, Chris Lalancette wrote:
We were over-writing a pointer without freeing it in case of a disk device, leading to a memory leak.
Signed-off-by: Chris Lalancette <clalance@redhat.com> --- src/node_device/node_device_udev.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
Plugging a memory leak by pure code deletion - nice :) I had to double-check, but concur that udevProcessDisk is static, and the only caller already had data->storage.drive_type set to "disk" on entry. ACK.
- data->storage.drive_type = strdup("disk");
-- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

On 04/28/2010 05:06 PM, Eric Blake wrote:
On 04/28/2010 02:27 PM, Chris Lalancette wrote:
We were over-writing a pointer without freeing it in case of a disk device, leading to a memory leak.
Signed-off-by: Chris Lalancette <clalance@redhat.com> --- src/node_device/node_device_udev.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
Plugging a memory leak by pure code deletion - nice :)
I had to double-check, but concur that udevProcessDisk is static, and the only caller already had data->storage.drive_type set to "disk" on entry. ACK.
- data->storage.drive_type = strdup("disk");
Thanks. pushed. -- Chris Lalancette
participants (2)
-
Chris Lalancette
-
Eric Blake