Changeset ac23b9d3 in mainline for uspace/srv/vfs/vfs_file.c


Ignore:
Timestamp:
2009-05-23T16:28:28Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ad8fc510
Parents:
493853ec
Message:

avoid accessing uninitialized files array at all times

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/vfs_file.c

    r493853ec rac23b9d3  
    7979int vfs_fd_alloc(void)
    8080{
    81         int i;
    82 
     81        if (!vfs_files_init())
     82                return ENOMEM;
     83       
     84        unsigned int i;
    8385        for (i = 0; i < MAX_OPEN_FILES; i++) {
    8486                if (!files[i]) {
     
    8688                        if (!files[i])
    8789                                return ENOMEM;
     90                       
    8891                        memset(files[i], 0, sizeof(vfs_file_t));
    8992                        futex_initialize(&files[i]->lock, 1);
    9093                        vfs_file_addref(files[i]);
    91                         return i;
     94                        return (int) i;
    9295                }
    9396        }
     97       
    9498        return EMFILE;
    9599}
     
    104108int vfs_fd_free(int fd)
    105109{
     110        if (!vfs_files_init())
     111                return ENOMEM;
     112       
    106113        if ((fd < 0) || (fd >= MAX_OPEN_FILES) || (files[fd] == NULL))
    107114                return EBADF;
     115       
    108116        vfs_file_delref(files[fd]);
    109117        files[fd] = NULL;
     118       
    110119        return EOK;
    111120}
     
    151160vfs_file_t *vfs_file_get(int fd)
    152161{
     162        if (!vfs_files_init())
     163                return NULL;
     164       
    153165        if ((fd >= 0) && (fd < MAX_OPEN_FILES))
    154166                return files[fd];
     167       
    155168        return NULL;
    156169}
     
    158171/**
    159172 * @}
    160  */ 
     173 */
Note: See TracChangeset for help on using the changeset viewer.