[dm-devel] device-mapper ./WHATS_NEW dmsetup/dmsetup.c li ...
agk at sourceware.org
agk at sourceware.org
Wed Feb 14 15:12:18 UTC 2007
CVSROOT: /cvs/dm
Module name: device-mapper
Changes by: agk at sourceware.org 2007-02-14 15:12:16
Modified files:
. : WHATS_NEW
dmsetup : dmsetup.c
lib : libdm-report.c
Log message:
Fix a few leaks in reporting error paths.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/device-mapper/WHATS_NEW.diff?cvsroot=dm&r1=1.171&r2=1.172
http://sourceware.org/cgi-bin/cvsweb.cgi/device-mapper/dmsetup/dmsetup.c.diff?cvsroot=dm&r1=1.86&r2=1.87
http://sourceware.org/cgi-bin/cvsweb.cgi/device-mapper/lib/libdm-report.c.diff?cvsroot=dm&r1=1.11&r2=1.12
--- device-mapper/WHATS_NEW 2007/02/13 16:16:15 1.171
+++ device-mapper/WHATS_NEW 2007/02/14 15:12:14 1.172
@@ -1,5 +1,6 @@
Version 1.02.19 -
====================================
+ Fix a few leaks in reporting error paths. [1.02.15+]
Version 1.02.18 - 13th February 2007
====================================
--- device-mapper/dmsetup/dmsetup.c 2007/01/29 19:35:24 1.86
+++ device-mapper/dmsetup/dmsetup.c 2007/02/14 15:12:16 1.87
@@ -2019,6 +2019,7 @@
if (*argc != 2) {
fprintf(stderr, "%s: Too few arguments\n", base);
_losetup_usage(stderr);
+ dm_free(device_name);
return 0;
}
@@ -2027,6 +2028,7 @@
fprintf(stderr, "%s: Could not parse loop file name %s\n",
base, (*argv)[1]);
_losetup_usage(stderr);
+ dm_free(device_name);
return 0;
}
@@ -2034,6 +2036,7 @@
_table = dm_malloc(LOOP_TABLE_SIZE);
if (!_loop_table(_table, LOOP_TABLE_SIZE, loop_file, device_name, offset)) {
fprintf(stderr, "Could not build device-mapper table for %s\n", (*argv)[0]);
+ dm_free(device_name);
return 0;
}
_switches[TABLE_ARG]++;
--- device-mapper/lib/libdm-report.c 2007/01/29 17:23:54 1.11
+++ device-mapper/lib/libdm-report.c 2007/02/14 15:12:16 1.12
@@ -504,15 +504,20 @@
if (!(rh->mem = dm_pool_create("report", 10 * 1024))) {
log_error("dm_report_init: allocation of memory pool failed");
+ dm_free(rh);
return NULL;
}
/* Generate list of fields for output based on format string & flags */
- if (!_parse_options(rh, output_fields))
+ if (!_parse_options(rh, output_fields)) {
+ dm_report_free(rh);
return NULL;
+ }
- if (!_parse_keys(rh, sort_keys))
+ if (!_parse_keys(rh, sort_keys)) {
+ dm_report_free(rh);
return NULL;
+ }
/* Return updated types value for further compatility check by caller */
if (report_types)
More information about the dm-devel
mailing list