From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7485 invoked by alias); 24 Jul 2009 04:15:32 -0000 Received: (qmail 7468 invoked by uid 9657); 24 Jul 2009 04:15:31 -0000 Date: Fri, 24 Jul 2009 04:15:00 -0000 Message-ID: <20090724041531.7466.qmail@sourceware.org> From: wysochanski@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/test/api test.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: 2009-07/txt/msg00128.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: wysochanski@sourceware.org 2009-07-24 04:15:30 Modified files: test/api : test.c Log message: Update test/api/test.c to not segfault if null lists of pvs/lvs returned. Author: Dave Wysochanski Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/api/test.c.diff?cvsroot=lvm2&r1=1.3&r2=1.4 --- LVM2/test/api/test.c 2009/07/23 23:40:50 1.3 +++ LVM2/test/api/test.c 2009/07/24 04:15:30 1.4 @@ -124,14 +124,28 @@ } return vg; } +static void _add_lvs_to_lvname_hash(struct dm_list *lvs) +{ + struct lvm_lv_list *lvl; + dm_list_iterate_items(lvl, lvs) { + /* Concatenate VG name with LV name */ + dm_hash_insert(_lvname_hash, lvm_lv_get_name(lvl->lv), lvl->lv); + } +} + +static void _add_pvs_to_pvname_hash(struct dm_list *pvs) +{ + struct lvm_pv_list *pvl; + dm_list_iterate_items(pvl, pvs) { + dm_hash_insert(_pvname_hash, lvm_pv_get_name(pvl->pv), pvl->pv); + } +} static void _vg_open(char **argv, int argc, lvm_t libh) { vg_t *vg; struct dm_list *lvs; - struct lvm_lv_list *lvl; struct dm_list *pvs; - struct lvm_pv_list *pvl; if (argc < 2) { printf ("Please enter vg_name\n"); @@ -157,14 +171,11 @@ * Add the LVs and PVs into the hashes for lookups */ lvs = lvm_vg_list_lvs(vg); - dm_list_iterate_items(lvl, lvs) { - /* Concatenate VG name with LV name */ - dm_hash_insert(_lvname_hash, lvm_lv_get_name(lvl->lv), lvl->lv); - } + if (lvs && !dm_list_empty(lvs)) + _add_lvs_to_lvname_hash(lvs); pvs = lvm_vg_list_pvs(vg); - dm_list_iterate_items(pvl, pvs) { - dm_hash_insert(_pvname_hash, lvm_pv_get_name(pvl->pv), pvl->pv); - } + if (pvs && !dm_list_empty(pvs)) + _add_pvs_to_pvname_hash(pvs); } static void _vg_close(char **argv, int argc)