summaryrefslogtreecommitdiffstats
path: root/fs/bpkfs.c
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-03-06 23:49:17 -0800
committerSascha Hauer <s.hauer@pengutronix.de>2019-03-11 07:55:45 +0100
commitcf6e01e07f0eb838c1a08756bd3cc575221d7730 (patch)
tree9cdc22fe853958bc85dfe5026e93b5b7c46f1ecf /fs/bpkfs.c
parent41a5d444411b4f0dd7148b77a9533a5fdb4b5636 (diff)
downloadbarebox-cf6e01e07f0eb838c1a08756bd3cc575221d7730.tar.gz
barebox-cf6e01e07f0eb838c1a08756bd3cc575221d7730.tar.xz
bpkfs: Fix lseek error check in bpkfs_probe()
Don't use 'int' to store lseek()'s return value to avoid problems with large seek offsets. While at it, make sure to populate return error code from 'errno'. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs/bpkfs.c')
-rw-r--r--fs/bpkfs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bpkfs.c b/fs/bpkfs.c
index 655cde09b7..90d3a6bf1b 100644
--- a/fs/bpkfs.c
+++ b/fs/bpkfs.c
@@ -455,9 +455,9 @@ static int bpkfs_probe(struct device_d *dev)
list_add_tail(&d->list, &h->list_data);
priv->nb_data_entries++;
- ret = lseek(fd, d->size, SEEK_CUR);
- if (ret < 0) {
+ if (lseek(fd, d->size, SEEK_CUR) != d->size) {
dev_err(dev, "could not seek: %s\n", errno_str());
+ ret = -errno;
goto err;
}