diff options
author | Karel Zak | 2014-10-07 12:44:34 +0200 |
---|---|---|
committer | Karel Zak | 2014-10-07 12:44:34 +0200 |
commit | 00749bc366fe6106df918660a92a388cfff4f35f (patch) | |
tree | e69589fe278231e89ef1c62f58535e4022c9ebaf /libblkid/src/probe.c | |
parent | flock: zero timeout is valid (diff) | |
download | kernel-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.c | 5 |
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; } |