[lvm-devel] LVM2 ./WHATS_NEW lib/log/log.c

zkabelac at sourceware.org zkabelac at sourceware.org
Sat Oct 22 16:52:01 UTC 2011


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2011-10-22 16:52:01

Modified files:
	.              : WHATS_NEW 
	lib/log        : log.c 

Log message:
	Reduce stack size usage in print_log
	
	As the buf2[] and locn[] can't be used at the same time, safe 1 page from
	stack memory.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2167&r2=1.2168
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/log/log.c.diff?cvsroot=lvm2&r1=1.65&r2=1.66

--- LVM2/WHATS_NEW	2011/10/22 16:42:10	1.2167
+++ LVM2/WHATS_NEW	2011/10/22 16:52:00	1.2168
@@ -1,5 +1,6 @@
 Version 2.02.89 - 
 ==================================
+  Remove extra 4kB buffer allocated on stack in print_log().
   Make move_lv_segment non-static function and use dm_list function.
   Pass exclusive LV locks to all nodes in the cluster.
   Improve lvcreate man documentation of the chunksize option.
--- LVM2/lib/log/log.c	2011/08/11 19:21:42	1.65
+++ LVM2/lib/log/log.c	2011/10/22 16:52:00	1.66
@@ -185,7 +185,7 @@
 	       const char *format, ...)
 {
 	va_list ap;
-	char buf[1024], buf2[4096], locn[4096];
+	char buf[1024], locn[4096];
 	int bufused, n;
 	const char *message;
 	const char *trformat;		/* Translated format string */
@@ -221,7 +221,7 @@
 	    (_store_errmsg && (level <= _LOG_ERR)) ||
 	    log_once) {
 		va_start(ap, format);
-		n = vsnprintf(buf2, sizeof(buf2) - 1, trformat, ap);
+		n = vsnprintf(locn, sizeof(locn) - 1, trformat, ap);
 		va_end(ap);
 
 		if (n < 0) {
@@ -230,8 +230,8 @@
 			goto log_it;
 		}
 
-		buf2[sizeof(buf2) - 1] = '\0';
-		message = &buf2[0];
+		locn[sizeof(locn) - 1] = '\0';
+		message = &locn[0];
 	}
 
 /* FIXME Avoid pointless use of message buffer when it'll never be read! */




More information about the lvm-devel mailing list