1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/libdm
Bryn M. Reeves 4bc7a86f3a libdm: only free the first histogram explicitly (Coverity)
Coverity flags a user-after-free in _stats_histograms_destroy():

>>>     Calling "dm_pool_free" frees pointer "mem->chunk" which has
>>>     already been freed.

This should not be possible since the histograms are destroyed in
reverse order of allocation:

 203         for (n = _nr_areas_region(region) - 1; n; n--)
 204                 if (region->counters[n].histogram)
 205                         dm_pool_free(mem, region->counters[n].histogram);

It appears that Coverity is unaware that pool->chunk is updated
during the call to dm_pool_free() and valgrind flags no errors in
this function when called with multiple allocated histograms.

Since there is no actual need to free the histograms individually
in this way simplify the code and just free the first allocated
object (which will also free all later allocated histograms in a
single call).
2015-09-07 17:53:56 +01:00
..
datastruct Use void pointer instead of char for binary key 2011-03-10 12:48:40 +00:00
ioctl macros: fix default symbol export control 2015-08-24 20:03:21 +01:00
misc libdm: Add DM_INTERNAL_SUSPEND_FLAG. 2015-04-23 18:39:04 +01:00
mm libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
regex cleanup: add braces for if() 2014-07-02 10:45:43 +02:00
.exported_symbols libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
.exported_symbols.Base macros: fix default symbol export control 2015-08-24 20:03:21 +01:00
.exported_symbols.DM_1_02_97 libdm: new dm_task_get_info with internal_suspend 2015-05-15 16:48:22 +02:00
.exported_symbols.DM_1_02_98 libdm: Add dm_task_get_errno to return ioctl errno. 2015-05-26 15:13:49 +01:00
.exported_symbols.DM_1_02_99 libdm: add dm_tree_node_set_thin_pool_read_only 2015-06-18 15:15:39 +02:00
.exported_symbols.DM_1_02_100 config: add support for config value formatting flags 2015-06-24 11:13:37 +02:00
.exported_symbols.DM_1_02_101 report: add infrastructure to recognize fuzzy reserved names and returning dynamic reserved values 2015-07-03 10:47:09 +02:00
.exported_symbols.DM_1_02_103 libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
.exported_symbols.DM_1_02_104 libdm: Drop ignored duplicate export designation. 2015-08-26 17:30:36 +01:00
.exported_symbols.DM_1_02_105 pre-release 2015-08-17 17:20:14 +01:00
.exported_symbols.DM_1_02_106 libdm: add per region precise timestamps property methods 2015-08-24 20:03:21 +01:00
.exported_symbols.DM_1_02_107 libdm: add latency histogram support 2015-09-02 20:48:59 +01:00
libdevmapper.h libdm: allow formatting histogram strings with no whitespace 2015-09-03 22:04:10 +01:00
libdevmapper.pc.in libdm: pkgconfig: fix devmapper.pc to not reference nonexistent rt.pc file 2015-09-03 09:28:42 +02:00
libdm-common.c dmsetup: Report timestamps of ioctls with -vvv. 2015-08-05 08:28:35 +01:00
libdm-common.h libdm: introduce and use DEV_UUID macro 2012-10-10 17:16:15 +02:00
libdm-config.c macros: Wrap PRI with FMT. 2015-07-06 15:09:17 +01:00
libdm-deptree.c libdm: relocate parsing of thin-pool status 2015-09-03 23:34:36 +02:00
libdm-file.c style: Standardise some error paths. 2015-09-05 23:56:30 +01:00
libdm-report.c style: Standardise some error paths. 2015-09-05 23:56:30 +01:00
libdm-stats.c libdm: only free the first histogram explicitly (Coverity) 2015-09-07 17:53:56 +01:00
libdm-string.c libdm: Add dm_size_to_string to libdevmapper. 2015-07-27 21:30:20 +01:00
libdm-timestamp.c libdm: do not in include internal bits/time.h header 2015-08-14 11:33:12 +01:00
Makefile.in configure: check for -lm and log10 function 2015-08-18 15:25:54 +01:00