From: Theodore Ts'o Date: Sun, 29 Jun 2008 01:02:01 +0000 (-0400) Subject: blkid: Make sure a device returned by blkid_find_dev_with_tag exists X-Git-Tag: v1.41-WIP-0707~14 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=b697f9d01c5f07842426f7d8e918bf3110028662;p=tools%2Fe2fsprogs.git blkid: Make sure a device returned by blkid_find_dev_with_tag exists There could be stale entries in blkid file, so if the device does not exist, skip it. Addresses-Debian-Bug: #487758, #487783 Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/blkid/tag.c b/lib/blkid/tag.c index 44dd86d..8a8ac99 100644 --- a/lib/blkid/tag.c +++ b/lib/blkid/tag.c @@ -10,6 +10,7 @@ * %End-Header% */ +#include #include #include #include @@ -355,7 +356,8 @@ try_again: bit_names); if (!strcmp(tmp->bit_val, value) && - tmp->bit_dev->bid_pri > pri) { + (tmp->bit_dev->bid_pri > pri) && + !access(tmp->bit_dev->bid_name, F_OK)) { dev = tmp->bit_dev; pri = dev->bid_pri; } @@ -363,7 +365,7 @@ try_again: } if (dev && !(dev->bid_flags & BLKID_BID_FL_VERIFIED)) { dev = blkid_verify(cache, dev); - if (dev && (dev->bid_flags & BLKID_BID_FL_VERIFIED)) + if (!dev || (dev && (dev->bid_flags & BLKID_BID_FL_VERIFIED))) goto try_again; }