summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChinmay Agarwal <chinagar@codeaurora.org>2020-05-20 18:54:16 +0530
committerChinmay Agarwal <chinagar@codeaurora.org>2020-05-20 23:41:50 +0530
commitd6c991beeff2b0cedd188dac8d04da3900c5c1ea (patch)
tree30dc69cf72866dc89f7fe8dd0a7e023426e4d0d3
parente002315f6197f00982564ff5053ab98dce682e6c (diff)
downloaddata-kernel-d6c991beeff2b0cedd188dac8d04da3900c5c1ea.tar.gz
drivers: rmnet: shs: Fix Error reported in Static Analysis
NULL check added in "rmnet_shs_wq_mem_init" for "shs_proc_dir" . Change-Id: I75296da8476ee52e4c49dc0e7f8d83ac7568782d Signed-off-by: Chinmay Agarwal <chinagar@codeaurora.org>
-rw-r--r--drivers/rmnet/shs/rmnet_shs_wq.c3
-rw-r--r--drivers/rmnet/shs/rmnet_shs_wq_mem.c9
-rw-r--r--drivers/rmnet/shs/rmnet_shs_wq_mem.h2
3 files changed, 11 insertions, 3 deletions
diff --git a/drivers/rmnet/shs/rmnet_shs_wq.c b/drivers/rmnet/shs/rmnet_shs_wq.c
index f300c22..6b2a31e 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq.c
+++ b/drivers/rmnet/shs/rmnet_shs_wq.c
@@ -2149,7 +2149,8 @@ void rmnet_shs_wq_init(struct net_device *dev)
return;
}
- rmnet_shs_wq_mem_init();
+ if( rmnet_shs_wq_mem_init() )
+ rmnet_shs_wq_genl_deinit();
trace_rmnet_shs_wq_high(RMNET_SHS_WQ_INIT, RMNET_SHS_WQ_INIT_START,
0xDEF, 0xDEF, 0xDEF, 0xDEF, NULL, NULL);
diff --git a/drivers/rmnet/shs/rmnet_shs_wq_mem.c b/drivers/rmnet/shs/rmnet_shs_wq_mem.c
index e914d78..7c5dbad 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq_mem.c
+++ b/drivers/rmnet/shs/rmnet_shs_wq_mem.c
@@ -953,13 +953,19 @@ void rmnet_shs_wq_mem_update_cached_netdevs(void)
}
/* Creates the proc folder and files for shs shared memory */
-void rmnet_shs_wq_mem_init(void)
+int rmnet_shs_wq_mem_init(void)
{
kuid_t shs_uid;
kgid_t shs_gid;
shs_proc_dir = proc_mkdir("shs", NULL);
+ if(!shs_proc_dir)
+ {
+ rm_err("%s", "SHS_MEM: shs_proc_dir returned as NULL\n");
+ return -1;
+ }
+
shs_uid = make_kuid(&init_user_ns, 1001);
shs_gid = make_kgid(&init_user_ns, 1001);
@@ -977,6 +983,7 @@ void rmnet_shs_wq_mem_init(void)
ssflow_shared = NULL;
netdev_shared = NULL;
rmnet_shs_wq_ep_unlock_bh();
+ return 0;
}
/* Remove shs files and folders from proc fs */
diff --git a/drivers/rmnet/shs/rmnet_shs_wq_mem.h b/drivers/rmnet/shs/rmnet_shs_wq_mem.h
index e955606..374a556 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq_mem.h
+++ b/drivers/rmnet/shs/rmnet_shs_wq_mem.h
@@ -107,7 +107,7 @@ void rmnet_shs_wq_mem_update_cached_sorted_gold_flows(struct list_head *gold_flo
void rmnet_shs_wq_mem_update_cached_sorted_ss_flows(struct list_head *ss_flows);
void rmnet_shs_wq_mem_update_cached_netdevs(void);
-void rmnet_shs_wq_mem_init(void);
+int rmnet_shs_wq_mem_init(void);
void rmnet_shs_wq_mem_deinit(void);