Thread (24 messages) 24 messages, 3 authors, 2011-11-02

Re: [PATCH 00/19] More fixes for resource leaks and warnings

From: NeilBrown <hidden>
Date: 2011-11-02 00:25:30

On Tue,  1 Nov 2011 16:09:16 +0100 Jes.Sorensen@redhat.com wrote:
From: Jes Sorensen <redacted>

Hi,

Another 'small' pile of fixes for various resource leaks, null pointer
dereferencing and out of bounds buffer access found by Coverity.
Thanks Jes.
I've applied all of these - using the second version of patch 19.

I'm not normally very fussed about freeing and closing things shortly before
the process is going to exit anyway, but I'm not against it.  And some of
your patches were for other leaks.
This is the bulk of these for now. Please notice that I haven't
touched super-ddf.c at all, and that is probably the single biggest
offender. Also note that I haven't addressed a number of warnings in
sysfs.c where we know for sure that files aren't bigger than a given
size. The tool obviously doesn't know this, so it spews warnings when
we strcpy() content we just read. While the code per-ce is probably
safe, we may want to switch to strncpy() just to reduce the noise
ratio?
Maybe.  I hate strncpy because it doesn't reliably nul-terminate but I'm
happy to make the code 'safer' as long as we avoid making it ugly.

Thanks,
NeilBrown

Cheers,
Jes


Jes Sorensen (19):
  Grow_Add_device(): dev_open() return a negative fd on error
  Grow_addbitmap(): don't try to close a file descriptor which failed
    to open
  Incremental(): Check return value of dev_open() before trying to use
    it
  sysfs_unique_holder(): Check read() return value before using as
    buffer index
  remove_devices(): readlink returns -1 on error
  assemble_container_content(): fix memory leak
  Grow_restart(): free() offsets after use
  Assemble(): don't dup_super() before we need it.
  Detail(): Remember to free 'avail'
  Grow_reshape(): Fix another 'sra' leak
  enough_fd(): remember to free buffer for avail array
  Manage_subdevs(): avoid leaking super
  IncrementalScan(): Fix memory leak
  Managa_ro(): free() mdi before exiting
  Manage_runstop(): Avoid memory leak
  Monitor(): free allocated memory on exit
  bitmap_fd_read(): fix memory leak
  validate_geometry_imsm_volume(): Avoid NULL pointer dereference
  make_parts(): Avoid false positive security warning

 Assemble.c    |    9 +++++++--
 Detail.c      |    3 ++-
 Grow.c        |   19 +++++++++++++------
 Incremental.c |    7 +++++++
 Manage.c      |   56 ++++++++++++++++++++++++++++++++++++++++----------------
 Monitor.c     |    6 ++++++
 bitmap.c      |    3 +++
 mdopen.c      |   14 +++++++-------
 super-intel.c |    4 +++-
 sysfs.c       |    2 ++
 util.c        |    9 +++++----
 11 files changed, 95 insertions(+), 37 deletions(-)
  

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help