From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31770 invoked by alias); 8 Feb 2012 11:17:37 -0000 Received: (qmail 31749 invoked by uid 9737); 8 Feb 2012 11:17:35 -0000 Date: Wed, 08 Feb 2012 11:17:00 -0000 Message-ID: <20120208111735.31746.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/locking/file_locking.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: 2012-02/txt/msg00023.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2012-02-08 11:17:35 Modified files: . : WHATS_NEW lib/locking : file_locking.c Log message: Check that whole locking_dir fits _lock_dir buffer Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2264&r2=1.2265 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/file_locking.c.diff?cvsroot=lvm2&r1=1.62&r2=1.63 --- LVM2/WHATS_NEW 2012/02/08 11:12:18 1.2264 +++ LVM2/WHATS_NEW 2012/02/08 11:17:34 1.2265 @@ -1,5 +1,6 @@ Version 2.02.91 - =================================== + Check that whole locking_dir fits _lock_dir buffer in init_file_locking(). Use list functions for label_exit(). Ensure strncpy() function always ends with '\0'. Set status in _fsadm_cmd() for error path. --- LVM2/lib/locking/file_locking.c 2012/01/20 00:27:20 1.62 +++ LVM2/lib/locking/file_locking.c 2012/02/08 11:17:35 1.63 @@ -337,6 +337,7 @@ int suppress_messages) { int r; + const char *locking_dir; locking->lock_resource = _file_lock_resource; locking->reset_locking = _reset_file_locking; @@ -344,9 +345,14 @@ locking->flags = 0; /* Get lockfile directory from config file */ - strncpy(_lock_dir, find_config_tree_str(cmd, "global/locking_dir", - DEFAULT_LOCK_DIR), - sizeof(_lock_dir)); + locking_dir = find_config_tree_str(cmd, "global/locking_dir", + DEFAULT_LOCK_DIR); + if (strlen(locking_dir) >= sizeof(_lock_dir)) { + log_error("Path for locking_dir %s is invalid.", locking_dir); + return 0; + } + + strcpy(_lock_dir, locking_dir); _prioritise_write_locks = find_config_tree_bool(cmd, "global/prioritise_write_locks",