Catch negative FDs
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 9 Aug 2010 18:33:36 +0000 (11:33 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:50 +0000 (17:35 -0700)
kern/src/vfs.c

index 9ff6051..eb39a7c 100644 (file)
@@ -974,6 +974,8 @@ int file_load_page(struct file *file, unsigned long index, struct page **pp)
 struct file *get_file_from_fd(struct files_struct *open_files, int file_desc)
 {
        struct file *retval = 0;
+       if (file_desc < 0)
+               return 0;
        spin_lock(&open_files->lock);
        if (file_desc < open_files->max_fdset) {
                if (GET_BITMASK_BIT(open_files->open_fds->fds_bits, file_desc)) {
@@ -995,6 +997,8 @@ struct file *get_file_from_fd(struct files_struct *open_files, int file_desc)
 struct file *put_file_from_fd(struct files_struct *open_files, int file_desc)
 {
        struct file *file = 0;
+       if (file_desc < 0)
+               return 0;
        spin_lock(&open_files->lock);
        if (file_desc < open_files->max_fdset) {
                if (GET_BITMASK_BIT(open_files->open_fds->fds_bits, file_desc)) {