[lvm-devel] LVM2/lib/metadata mirror.c
zkabelac at sourceware.org
zkabelac at sourceware.org
Tue Apr 12 14:13:18 UTC 2011
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac at sourceware.org 2011-04-12 14:13:18
Modified files:
lib/metadata : mirror.c
Log message:
Replace dm_snprintf with strncpy
My previous patch fixed incorrect error check for dm_snprintf.
However in this particular case - dm_snprintf has been used differently -
just like strncpy + setting last char with '\0' - so the code had to return
error - because the buffer was to short for whole string.
Patch replaces it with real strncpy.
Also test for alloca() failure is removed - as the program behaviour
is rather undefined in this case - it never returns NULL.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/mirror.c.diff?cvsroot=lvm2&r1=1.149&r2=1.150
--- LVM2/lib/metadata/mirror.c 2011/04/09 19:05:24 1.149
+++ LVM2/lib/metadata/mirror.c 2011/04/12 14:13:17 1.150
@@ -1785,13 +1785,10 @@
lv_name = lv->name;
suffix = "_mlogtmp_%d";
} else if ((lv_name = strstr(lv->name, MIRROR_SYNC_LAYER))) {
- len = lv_name - lv->name + 1;
- if (!(tmp_name = alloca(len)) ||
- (dm_snprintf(tmp_name, len, "%s", lv->name) < 0)) {
- log_error("mirror log name allocation failed");
- return 0;
- }
- lv_name = tmp_name;
+ len = lv_name - lv->name;
+ tmp_name = alloca(len + 1);
+ tmp_name[len] = '\0';
+ lv_name = strncpy(tmp_name, lv->name, len);
suffix = "_mlog";
} else {
lv_name = lv->name;
More information about the lvm-devel
mailing list