summaryrefslogtreecommitdiff
path: root/firmware/common
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-05-27 12:38:41 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-05-27 12:38:41 +0000
commitaa12eda830f688659b93ab0acf6f9d68a626eff6 (patch)
treeee67d483e8c2d17fe9e83e298ed19aaee9e8137f /firmware/common
parentc7036f1f5e494bbcec8daf5da65bb00668b5754f (diff)
downloadrockbox-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
Diffstat (limited to 'firmware/common')
-rw-r--r--firmware/common/file.c5
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 }