blob: 1ede123f31236b664b9db1436463eda72a7d4ce0 [file] [log] [blame]
From 00749bc366fe6106df918660a92a388cfff4f35f Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 7 Oct 2014 12:44:34 +0200
Subject: [PATCH] libblkid: zeroize errno on blkid_probe_get_buffer() success
Since 37f4060225df0591ab8e1dd676dbc8115d900d4f prober functions are
sensitive to errno, it seems more robust to set errno=0 with in
blkid_probe_get_buffer() on success than set the zero on all places
where we call blkid_probe_get_buffer().
Addresses: https://github.com/karelzak/util-linux/issues/119
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libblkid/src/probe.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c
index 4fea3cc..3f7e43b 100644
--- a/libblkid/src/probe.c
+++ b/libblkid/src/probe.c
@@ -539,8 +539,10 @@ unsigned char *blkid_probe_get_buffer(blkid_probe pr,
struct list_head *p;
struct blkid_bufinfo *bf = NULL;
- if (pr->size <= 0)
+ if (pr->size <= 0) {
+ errno = EINVAL;
return NULL;
+ }
if (pr->parent &&
pr->parent->devno == pr->devno &&
@@ -602,6 +604,7 @@ unsigned char *blkid_probe_get_buffer(blkid_probe pr,
list_add_tail(&bf->bufs, &pr->buffers);
}
+ errno = 0;
return off ? bf->data + (off - bf->off) : bf->data;
}
--
2.1.0.rc2.206.gedb03e5