From 90e9fcda3bb3a215f027fc66c1182a18e0746972 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 18 May 2011 11:57:17 +0200 Subject: lib: [sysfs.c] make sysfs_read_* function more robust The functions does not modify result if the requested sysfs attribute does not exist. Signed-off-by: Karel Zak --- shlibs/blkid/src/partitions/partitions.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'shlibs/blkid/src/partitions') diff --git a/shlibs/blkid/src/partitions/partitions.c b/shlibs/blkid/src/partitions/partitions.c index 2ac297a1c..060461d27 100644 --- a/shlibs/blkid/src/partitions/partitions.c +++ b/shlibs/blkid/src/partitions/partitions.c @@ -892,16 +892,20 @@ blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno { struct sysfs_cxt sysfs; uint64_t start, size; - int i; + int i, rc; if (sysfs_init(&sysfs, devno, NULL)) return NULL; - start = sysfs_read_u64(&sysfs, "start"); - size = sysfs_read_u64(&sysfs, "size"); + rc = sysfs_read_u64(&sysfs, "start", &start); + if (!rc) + rc = sysfs_read_u64(&sysfs, "size", &size); sysfs_deinit(&sysfs); + if (rc) + return NULL; + for (i = 0; i < ls->nparts; i++) { blkid_partition par = &ls->parts[i]; -- cgit v1.2.3-55-g7522