diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2008-08-01 08:59:27 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2008-08-01 08:59:27 +0200 |
commit | f295acb556da2b7a5e3b270ea8d34ea058fe7dc9 (patch) | |
tree | a8e939e1133401ddd493f4f1fb0dfcd3257abd23 /commands/mem.c | |
parent | ec1b86784d4c08f8f0897161e142745080625698 (diff) | |
download | barebox-f295acb556da2b7a5e3b270ea8d34ea058fe7dc9.tar.gz barebox-f295acb556da2b7a5e3b270ea8d34ea058fe7dc9.tar.xz |
lseek: return -1 for errors and check for that return value
We cannot check for < 0 in lseek, otherwise we get problems with files > 0x7fffffff
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/mem.c')
-rw-r--r-- | commands/mem.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/commands/mem.c b/commands/mem.c index f7b9e4bb60..dfafda3c95 100644 --- a/commands/mem.c +++ b/commands/mem.c @@ -110,7 +110,7 @@ int memory_display(char *addr, ulong offs, ulong nbytes, int size) return 0; } -int open_and_lseek(const char *filename, int mode, ulong pos) +int open_and_lseek(const char *filename, int mode, off_t pos) { int fd, ret; @@ -122,9 +122,9 @@ int open_and_lseek(const char *filename, int mode, ulong pos) if (!pos) return fd; - +printf("lseek to 0x%08x\n", pos); ret = lseek(fd, pos, SEEK_SET); - if (ret < 0) { + if (ret == -1) { perror("lseek"); close(fd); return ret; @@ -532,7 +532,7 @@ static struct driver_d mem_drv = { .close = dev_close_default, .read = mem_read, .write = mem_write, - .lseek = dev_lseek_default, + .lseek = dev_lseek_default, }; static struct driver_d ram_drv = { @@ -542,7 +542,7 @@ static struct driver_d ram_drv = { .close = dev_close_default, .read = mem_read, .write = mem_write, - .lseek = dev_lseek_default, + .lseek = dev_lseek_default, .type = DEVICE_TYPE_DRAM, }; |