[lvm-devel] LVM2 ./WHATS_NEW lib/filters/filter-persistent.c
mbroz at sourceware.org
mbroz at sourceware.org
Wed Jan 6 13:25:37 UTC 2010
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz at sourceware.org 2010-01-06 13:25:36
Modified files:
. : WHATS_NEW
lib/filters : filter-persistent.c
Log message:
Use fixed buffer to prevent stack overflow in persistent filter dump.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1364&r2=1.1365
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/filters/filter-persistent.c.diff?cvsroot=lvm2&r1=1.39&r2=1.40
--- LVM2/WHATS_NEW 2010/01/05 21:32:59 1.1364
+++ LVM2/WHATS_NEW 2010/01/06 13:25:36 1.1365
@@ -1,5 +1,6 @@
Version 2.02.57 -
====================================
+ Use fixed buffer to prevent stack overflow in persistent filter dump.
Use snapshot metadata usage to determine if a snapshot is empty.
Insert missing stack macros to all activate_lv and deactivate_lv callers.
Insert missing stack macros to all suspend_lv and resume_lv callers.
--- LVM2/lib/filters/filter-persistent.c 2009/12/11 13:16:38 1.39
+++ LVM2/lib/filters/filter-persistent.c 2010/01/06 13:25:36 1.40
@@ -143,7 +143,7 @@
{
void *d;
int first = 1;
- char *buf, *str;
+ char buf[2 * PATH_MAX];
struct dm_hash_node *n;
for (n = dm_hash_get_first(pf->devices); n;
@@ -160,13 +160,8 @@
first = 0;
}
- str = dm_hash_get_key(pf->devices, n);
- if (!(buf = alloca(escaped_len(str)))) {
- log_error("persistent filter device path stack "
- "allocation failed");
- return;
- }
- fprintf(fp, "\t\t\"%s\"", escape_double_quotes(buf, str));
+ escape_double_quotes(buf, dm_hash_get_key(pf->devices, n));
+ fprintf(fp, "\t\t\"%s\"", buf);
}
if (!first)
More information about the lvm-devel
mailing list