summaryrefslogtreecommitdiff
path: root/libblkid-tiny/libblkid-tiny.c
diff options
context:
space:
mode:
Diffstat (limited to 'libblkid-tiny/libblkid-tiny.c')
-rw-r--r--libblkid-tiny/libblkid-tiny.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/libblkid-tiny/libblkid-tiny.c b/libblkid-tiny/libblkid-tiny.c
index 6e8cd81..8520f8a 100644
--- a/libblkid-tiny/libblkid-tiny.c
+++ b/libblkid-tiny/libblkid-tiny.c
@@ -87,11 +87,15 @@ unsigned char *blkid_probe_get_buffer(blkid_probe pr,
memset(bf, 0, sizeof(*bf));
bf->data = ((unsigned char *)bf) + sizeof(*bf);
- lseek(pr->fd, off, SEEK_SET);
+ if (lseek(pr->fd, off, SEEK_SET) < 0) {
+ fprintf(stderr, "failed to seek\n");
+ free(bf);
+ return NULL;
+ }
ret = read(pr->fd, bf->data, len);
if (ret != len) {
- fprintf(stderr, "faile to read blkid\n");
+ fprintf(stderr, "failed to read blkid\n");
free(bf);
return NULL;
}
@@ -212,10 +216,14 @@ int probe_block(char *block, struct blkid_struct_probe *pr)
int off = (mag->kboff * 1024) + mag->sboff;
char magic[32] = { 0 };
- lseek(pr->fd, off, SEEK_SET);
- if (read(pr->fd, magic, mag->len) < 0)
+ if (lseek(pr->fd, off, SEEK_SET) < 0) {
+ close(pr->fd);
return -1;
-
+ }
+ if (read(pr->fd, magic, mag->len) < 0) {
+ close(pr->fd);
+ return -1;
+ }
DEBUG("magic: %s %s %d\n", mag->magic, magic, mag->len);
if (!memcmp(mag->magic, magic, mag->len))
break;