[Bug 263371] Possible memleak bugs caused by g_raid_destroy_volume()
Date: Sun, 17 Apr 2022 16:02:03 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263371
Bug ID: 263371
Summary: Possible memleak bugs caused by
g_raid_destroy_volume()
Product: Base System
Version: Unspecified
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: zhou1615@umn.edu
In sys/geom/raid/g_raid.c file, the function g_raid_destroy_volume(vol) will
not
free "vol" on some paths and return EBUSY instead of 0.
However, not all caller of g_raid_destroy_volume() will check the return value
and
those callers assume that there is no error when running
g_raid_destroy_volume(vol).
In detail, functions below does not check the return value:
In sys/geom/raid/md_promise.c file,
function: g_raid_md_promise_purge_volumes() and g_raid_md_ctl_promise()
In sys/geom/raid/md_ddf.c file,
fucntion: g_raid_md_ddf_purge_volumes() and g_raid_md_ctl_ddf()
In sys/geom/raid/md_intel.c file,
function: g_raid_md_ctl_intel()
In sys/geom/raid/g_raid.c file,
function: g_raid_update_volume() and g_raid_access().
There only one function g_raid_destroy_node() checks the return value of
g_raid_destroy_volume() and return EBUSY.
Maybe we should handle other functions like this one.
I am not sure whether missing checks of g_raid_destroy_volume() is on purpose
or ignored,
and those bugs are found by a static analyzer, please advise.
--
You are receiving this mail because:
You are the assignee for the bug.