[lvm-devel] LVM2/lib/mm memlock.c

zkabelac at sourceware.org zkabelac at sourceware.org
Tue Mar 9 10:25:51 UTC 2010


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2010-03-09 10:25:50

Modified files:
	lib/mm         : memlock.c 

Log message:
	Update comments for selecting maps
	Use dm_snprintf and check result whether we create correct /proc path name

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/mm/memlock.c.diff?cvsroot=lvm2&r1=1.20&r2=1.21

--- LVM2/lib/mm/memlock.c	2010/03/09 03:16:11	1.20
+++ LVM2/lib/mm/memlock.c	2010/03/09 10:25:50	1.21
@@ -78,7 +78,7 @@
 static unsigned _use_mlockall;
 static FILE *_mapsh;
 static char _procselfmaps[PATH_MAX] = "";
-static const char _selfmaps[] = "/self/maps";
+#define SELF_MAPS "/self/maps"
 
 struct maps_stats {
 	size_t r_size;
@@ -140,7 +140,7 @@
 		return 0;
 	}
 
-	/* skip  ---p,  select with r,w,x */
+	/* Select readable maps */
 	if (fr != 'r')
 		return 1;
 
@@ -244,13 +244,14 @@
 	_use_mlockall = find_config_tree_bool(cmd, "activation/use_mlockall", DEFAULT_USE_MLOCKALL);
 
 	if (!_use_mlockall) {
-		/* Initialise static variables first time */
+		/* Reset statistic counters */
 		memset(&_mstats, 0, sizeof(_mstats));
 
-		if (!*_procselfmaps) {
-			_procselfmaps[PATH_MAX - 1] = '\0';
-			strncpy(_procselfmaps, cmd->proc_dir, PATH_MAX - 1);
-			strncat(_procselfmaps, _selfmaps, PATH_MAX - 1);
+		if (!*_procselfmaps &&
+		    dm_snprintf(_procselfmaps, sizeof(_procselfmaps),
+				"%s" SELF_MAPS, cmd->proc_dir) < 0) {
+			log_error("proc_dir too long");
+			return;
 		}
 
 		if (!(_mapsh = fopen(_procselfmaps, "r"))) {




More information about the lvm-devel mailing list