From b697f9d01c5f07842426f7d8e918bf3110028662 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Sat, 28 Jun 2008 21:02:01 -0400 Subject: [PATCH] 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" --- lib/blkid/tag.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } -- 1.8.3.1