From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19930 invoked by alias); 1 Mar 2012 21:56:48 -0000 Received: (qmail 19899 invoked by uid 9737); 1 Mar 2012 21:56:45 -0000 Date: Thu, 01 Mar 2012 21:56:00 -0000 Message-ID: <20120301215645.19897.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW_DM tools/dmsetup.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-03/txt/msg00025.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2012-03-01 21:56:44 Modified files: . : WHATS_NEW_DM tools : dmsetup.c Log message: Add some more pointer validation Ensure _display_name() and _add_dep() would not deref NULL names. Switch to use internal dm_basename(). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW_DM.diff?cvsroot=lvm2&r1=1.578&r2=1.579 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/dmsetup.c.diff?cvsroot=lvm2&r1=1.184&r2=1.185 --- LVM2/WHATS_NEW_DM 2012/03/01 10:07:38 1.578 +++ LVM2/WHATS_NEW_DM 2012/03/01 21:56:44 1.579 @@ -1,5 +1,6 @@ Version 1.02.73 - ==================================== + Add few pointer validation in dmsetup. Support dm_task_get_driver_version() query without version string. Log failure of pthread_join when cleaning unused threads in dmeventd. Fix empty string warning logic in _find_config_str. (1.02.68) --- LVM2/tools/dmsetup.c 2012/03/01 21:50:35 1.184 +++ LVM2/tools/dmsetup.c 2012/03/01 21:56:44 1.185 @@ -1869,6 +1869,9 @@ { char dev_name[PATH_MAX]; + if (!names) + return 1; + if ((_dev_name_type == DN_BLK || _dev_name_type == DN_MAP) && dm_device_get_name((int) MAJOR(names->dev), (int) MINOR(names->dev), _dev_name_type == DN_BLK, dev_name, PATH_MAX)) @@ -2203,7 +2206,8 @@ static int _add_dep(CMD_ARGS) { - if (!dm_tree_add_dev(_dtree, (unsigned) MAJOR(names->dev), (unsigned) MINOR(names->dev))) + if (names && + !dm_tree_add_dev(_dtree, (unsigned) MAJOR(names->dev), (unsigned) MINOR(names->dev))) return 0; return 1; @@ -3417,7 +3421,8 @@ static int _process_switches(int *argc, char ***argv, const char *dev_dir) { - char *base, *namebase, *s; + const char *base; + char *namebase, *s; static int ind; int c, r; @@ -3482,7 +3487,7 @@ fprintf(stderr, "Failed to duplicate name.\n"); return 0; } - base = basename(namebase); + base = dm_basename(namebase); if (!strcmp(base, "devmap_name")) { free(namebase);