From bba2e9f2c4d1868bfc345e34af816fa494fa4fc0 Mon Sep 17 00:00:00 2001 From: Mohammed Javid Date: Wed, 14 Jun 2017 12:40:34 +0530 Subject: msm:ipa: Fix to IPA static analysis constant null deferenced Adding code changes to reslove IPA static analysis issue Constant NULL dereferenced by passing to other function. Change-Id: I07bd7ac42929576429fc4548cfce7d202d77364f Acked-by: Ashok Vuyyuru Signed-off-by: Mohammed Javid --- drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c | 9 ++++++++- drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c b/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c index ce899ef9c531..c59c597f39bf 100644 --- a/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c +++ b/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c @@ -2855,6 +2855,10 @@ int rmnet_ipa_query_tethering_stats_modem( kfree(req); kfree(resp); return rc; + } else if (data == NULL) { + kfree(req); + kfree(resp); + return 0; } if (resp->dl_dst_pipe_stats_list_valid) { @@ -3038,8 +3042,11 @@ int rmnet_ipa_query_tethering_stats_all( int rmnet_ipa_reset_tethering_stats(struct wan_ioctl_reset_tether_stats *data) { enum ipa_upstream_type upstream_type; + struct wan_ioctl_query_tether_stats tether_stats; int rc = 0; + memset(&tether_stats, 0, sizeof(struct wan_ioctl_query_tether_stats)); + /* get IPA backhaul type */ upstream_type = find_upstream_type(data->upstreamIface); @@ -3057,7 +3064,7 @@ int rmnet_ipa_reset_tethering_stats(struct wan_ioctl_reset_tether_stats *data) } else { IPAWANDBG(" reset modem-backhaul stats\n"); rc = rmnet_ipa_query_tethering_stats_modem( - NULL, true); + &tether_stats, true); if (rc) { IPAWANERR("reset MODEM stats failed\n"); return rc; diff --git a/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c b/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c index 03dbcbb059aa..df5454e4776c 100644 --- a/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +++ b/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c @@ -2982,6 +2982,10 @@ static int rmnet_ipa3_query_tethering_stats_modem( kfree(req); kfree(resp); return rc; + } else if (data == NULL) { + kfree(req); + kfree(resp); + return 0; } if (resp->dl_dst_pipe_stats_list_valid) { @@ -3165,8 +3169,11 @@ int rmnet_ipa3_query_tethering_stats_all( int rmnet_ipa3_reset_tethering_stats(struct wan_ioctl_reset_tether_stats *data) { enum ipa_upstream_type upstream_type; + struct wan_ioctl_query_tether_stats tether_stats; int rc = 0; + memset(&tether_stats, 0, sizeof(struct wan_ioctl_query_tether_stats)); + /* get IPA backhaul type */ upstream_type = find_upstream_type(data->upstreamIface); @@ -3184,7 +3191,7 @@ int rmnet_ipa3_reset_tethering_stats(struct wan_ioctl_reset_tether_stats *data) } else { IPAWANERR(" reset modem-backhaul stats\n"); rc = rmnet_ipa3_query_tethering_stats_modem( - NULL, true); + &tether_stats, true); if (rc) { IPAWANERR("reset MODEM stats failed\n"); return rc; -- cgit v1.2.3