diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-03-06 23:49:17 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-03-11 07:55:45 +0100 |
commit | cf6e01e07f0eb838c1a08756bd3cc575221d7730 (patch) | |
tree | 9cdc22fe853958bc85dfe5026e93b5b7c46f1ecf /fs/bpkfs.c | |
parent | 41a5d444411b4f0dd7148b77a9533a5fdb4b5636 (diff) | |
download | barebox-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.c | 4 |
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; } |