From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1191 invoked by alias); 9 Mar 2010 10:25:51 -0000 Received: (qmail 1175 invoked by uid 9737); 9 Mar 2010 10:25:51 -0000 Date: Tue, 09 Mar 2010 10:25:00 -0000 Message-ID: <20100309102551.1173.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/lib/mm memlock.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2010-03/txt/msg00024.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@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"))) {