rsi: Potential null pointer derefernce issue fixed.
authorFariya Fatima <fariyaf@gmail.com>
Wed, 2 Apr 2014 03:59:50 +0000 (09:29 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 9 Apr 2014 17:55:53 +0000 (13:55 -0400)
Signed-off-by: Fariya Fatima <fariyaf@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rsi/rsi_91x_debugfs.c

index 7e4ef4554411498d8329a49b5813fa6392540c02..c466246a323f3118d158b22df5c389bdb46e759b 100644 (file)
@@ -289,32 +289,29 @@ int rsi_init_dbgfs(struct rsi_hw *adapter)
        const struct rsi_dbg_files *files;
 
        dev_dbgfs = kzalloc(sizeof(*dev_dbgfs), GFP_KERNEL);
+       if (!dev_dbgfs)
+               return -ENOMEM;
+
        adapter->dfsentry = dev_dbgfs;
 
        snprintf(devdir, sizeof(devdir), "%s",
                 wiphy_name(adapter->hw->wiphy));
-       dev_dbgfs->subdir = debugfs_create_dir(devdir, NULL);
 
-       if (IS_ERR(dev_dbgfs->subdir)) {
-               if (dev_dbgfs->subdir == ERR_PTR(-ENODEV))
-                       rsi_dbg(ERR_ZONE,
-                               "%s:Debugfs has not been mounted\n", __func__);
-               else
-                       rsi_dbg(ERR_ZONE, "debugfs:%s not created\n", devdir);
+       dev_dbgfs->subdir = debugfs_create_dir(devdir, NULL);
 
-               adapter->dfsentry = NULL;
+       if (!dev_dbgfs->subdir) {
                kfree(dev_dbgfs);
-               return (int)PTR_ERR(dev_dbgfs->subdir);
-       } else {
-               for (ii = 0; ii < adapter->num_debugfs_entries; ii++) {
-                       files = &dev_debugfs_files[ii];
-                       dev_dbgfs->rsi_files[ii] =
-                       debugfs_create_file(files->name,
-                                           files->perms,
-                                           dev_dbgfs->subdir,
-                                           common,
-                                           &files->fops);
-               }
+               return -ENOMEM;
+       }
+
+       for (ii = 0; ii < adapter->num_debugfs_entries; ii++) {
+               files = &dev_debugfs_files[ii];
+               dev_dbgfs->rsi_files[ii] =
+               debugfs_create_file(files->name,
+                                   files->perms,
+                                   dev_dbgfs->subdir,
+                                   common,
+                                   &files->fops);
        }
        return 0;
 }