diff --git a/fs/vfs/kern_descrip.c b/fs/vfs/kern_descrip.c index 1a3afdf4cab8110074c995ceb64f00d7bd446f92..f187101b2d46c213177b52dd4b6ac7b50c0576c0 100644 --- a/fs/vfs/kern_descrip.c +++ b/fs/vfs/kern_descrip.c @@ -43,6 +43,9 @@ int fdset(int fd, struct file *fp) { struct file *orig; + if (fd < 0 || fd >= FDMAX) + return EBADF; + fhold(fp); orig = __sync_val_compare_and_swap(&gfdt[fd], NULL, fp); if (orig != NULL) {