diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-05-27 12:38:41 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-05-27 12:38:41 +0000 |
commit | aa12eda830f688659b93ab0acf6f9d68a626eff6 (patch) | |
tree | ee67d483e8c2d17fe9e83e298ed19aaee9e8137f | |
parent | c7036f1f5e494bbcec8daf5da65bb00668b5754f (diff) | |
download | rockbox-aa12eda830f688659b93ab0acf6f9d68a626eff6.tar.gz rockbox-aa12eda830f688659b93ab0acf6f9d68a626eff6.zip |
Bugfix: SEEK_END takes negative position
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@747 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/common/file.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c index 4b7865d724..38ae3cb912 100644 --- a/firmware/common/file.c +++ b/firmware/common/file.c | |||
@@ -227,15 +227,14 @@ int lseek(int fd, int offset, int whence) | |||
227 | break; | 227 | break; |
228 | 228 | ||
229 | case SEEK_END: | 229 | case SEEK_END: |
230 | pos = openfiles[fd].size - offset; | 230 | pos = openfiles[fd].size + offset; |
231 | break; | 231 | break; |
232 | 232 | ||
233 | default: | 233 | default: |
234 | errno = EINVAL; | 234 | errno = EINVAL; |
235 | return -1; | 235 | return -1; |
236 | } | 236 | } |
237 | if ( (pos < 0) || | 237 | if ((pos < 0) || (pos > openfiles[fd].size)) { |
238 | (pos > openfiles[fd].size) ) { | ||
239 | errno = EINVAL; | 238 | errno = EINVAL; |
240 | return -1; | 239 | return -1; |
241 | } | 240 | } |