summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/platform/msm/ipa/ipa_rm_dependency_graph.c8
-rw-r--r--drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c8
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c8
3 files changed, 19 insertions, 5 deletions
diff --git a/drivers/platform/msm/ipa/ipa_rm_dependency_graph.c b/drivers/platform/msm/ipa/ipa_rm_dependency_graph.c
index e10c75a473ce..f5c36fed5ede 100644
--- a/drivers/platform/msm/ipa/ipa_rm_dependency_graph.c
+++ b/drivers/platform/msm/ipa/ipa_rm_dependency_graph.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -88,7 +88,8 @@ int ipa_rm_dep_graph_get_resource(
goto bail;
}
resource_index = ipa_rm_dep_get_index(resource_name);
- if (resource_index == IPA_RM_INDEX_INVALID) {
+ if (resource_index == IPA_RM_INDEX_INVALID ||
+ resource_index >= IPA_RM_RESOURCE_MAX) {
result = -EINVAL;
goto bail;
}
@@ -120,7 +121,8 @@ int ipa_rm_dep_graph_add(struct ipa_rm_dep_graph *graph,
goto bail;
}
resource_index = ipa_rm_dep_get_index(resource->name);
- if (resource_index == IPA_RM_INDEX_INVALID) {
+ if (resource_index == IPA_RM_INDEX_INVALID ||
+ resource_index >= IPA_RM_RESOURCE_MAX) {
result = -EINVAL;
goto bail;
}
diff --git a/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c b/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c
index a49b338ea43c..7518e437acd2 100644
--- a/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v2/rmnet_ipa.c
@@ -2919,7 +2919,13 @@ int rmnet_ipa_query_tethering_stats_modem(
IPAWANDBG("reset the pipe stats\n");
} else {
/* print tethered-client enum */
- IPAWANDBG("Tethered-client enum(%d)\n", data->ipa_client);
+ if (data == NULL) {
+ kfree(req);
+ kfree(resp);
+ return -EINVAL;
+ }
+ IPAWANDBG_LOW("Tethered-client enum(%d)\n",
+ data->ipa_client);
}
rc = ipa_qmi_get_data_stats(req, resp);
diff --git a/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c b/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c
index a071b78d1f93..cccd597646a7 100644
--- a/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c
@@ -3033,7 +3033,13 @@ static int rmnet_ipa3_query_tethering_stats_modem(
IPAWANDBG("reset the pipe stats\n");
} else {
/* print tethered-client enum */
- IPAWANDBG("Tethered-client enum(%d)\n", data->ipa_client);
+ if (data == NULL) {
+ kfree(req);
+ kfree(resp);
+ return -EINVAL;
+ }
+ IPAWANDBG_LOW("Tethered-client enum(%d)\n",
+ data->ipa_client);
}
rc = ipa3_qmi_get_data_stats(req, resp);