summaryrefslogtreecommitdiffstats
path: root/libblkid/src/probe.c
diff options
context:
space:
mode:
authorKarel Zak2014-10-07 12:44:34 +0200
committerKarel Zak2014-10-07 12:44:34 +0200
commit00749bc366fe6106df918660a92a388cfff4f35f (patch)
treee69589fe278231e89ef1c62f58535e4022c9ebaf /libblkid/src/probe.c
parentflock: zero timeout is valid (diff)
downloadkernel-qcow2-util-linux-00749bc366fe6106df918660a92a388cfff4f35f.tar.gz
kernel-qcow2-util-linux-00749bc366fe6106df918660a92a388cfff4f35f.tar.xz
kernel-qcow2-util-linux-00749bc366fe6106df918660a92a388cfff4f35f.zip
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>
Diffstat (limited to 'libblkid/src/probe.c')
-rw-r--r--libblkid/src/probe.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c
index 4fea3ccb4..3f7e43bec 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;
}