usb: testing the wrong variable in fs_create_by_name()
Subsystems (2)
PATCH 1/1 usb: testing the wrong variable in fs_create_by_name()
There is a typo here. We should be testing "*dentry" which was just assigned instead of "dentry". This could result in dereferencing an ERR_PTR inside either usbfs_mkdir() or usbfs_create().
Signed-off-by Dan Carpenter <[email protected]>
drivers/usb/core/inode.c +2 -2
@@ -515,13 +515,13 @@ static int fs_create_by_name (const char *name, mode_t mode, *dentry =NULL ;mutex_lock (&parent->d_inode->i_mutex); *dentry =lookup_one_len (name, parent,strlen (name)); -if (!IS_ERR (dentry)) { +if (!IS_ERR (*dentry)) {if ((mode &S_IFMT ) =S_IFDIR ) error =usbfs_mkdir (parent->d_inode, *dentry, mode);else error =usbfs_create (parent->d_inode, *dentry, mode); }else - error =PTR_ERR (dentry); + error =PTR_ERR (*dentry);mutex_unlock (&parent->d_inode->i_mutex);return error;
Quoted 5 lines · Dan Carpenter
There is a typo here. We should be testing "*dentry" which was just assigned instead of "dentry". This could result in dereferencing an
ERR_PTRinside eitherusbfs_mkdir()orusbfs_create().Signed-off-by Dan Carpenter <[email protected]>
Nice catch, thanks. I'll go queue this up.
greg k-h