diff options
| author | Heikki Hannikainen <hessuh@rockbox.org> | 2002-08-24 09:47:54 +0000 |
|---|---|---|
| committer | Heikki Hannikainen <hessuh@rockbox.org> | 2002-08-24 09:47:54 +0000 |
| commit | adbe4eddf918b7b617eb5bd4dda1435d5402b2c4 (patch) | |
| tree | 7b59619e1a6b1a98525088f710ea777c3b614f05 | |
| parent | bd510c2d2be5096f83e8ee80745fe528053ac2ec (diff) | |
| download | rockbox-adbe4eddf918b7b617eb5bd4dda1435d5402b2c4.zip rockbox-adbe4eddf918b7b617eb5bd4dda1435d5402b2c4.tar.gz rockbox-adbe4eddf918b7b617eb5bd4dda1435d5402b2c4.tar.bz2 rockbox-adbe4eddf918b7b617eb5bd4dda1435d5402b2c4.tar.xz | |
Make close() check for a valid fd and set errno accordingly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1965 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/common/file.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c index c5f4cd5..2c00c3e 100644 --- a/firmware/common/file.c +++ b/firmware/common/file.c @@ -122,6 +122,14 @@ int open(char* pathname, int flags) int close(int fd) { + if (fd < 0 || fd > MAX_OPEN_FILES-1) { + errno = EINVAL; + return -1; + } + if (!openfiles[fd].busy) { + errno = EBADF; + return -1; + } openfiles[fd].busy = false; return 0; } |