diff options
author | Mahammad Ismayilzada <mahammad.ismayilzada@freescale.com> | 2015-06-23 22:12:23 (GMT) |
---|---|---|
committer | Haiying Wang <Haiying.wang@freescale.com> | 2015-11-02 19:58:17 (GMT) |
commit | 56e16e2ba7582bd85d462e6102ff5828a6c3282b (patch) | |
tree | a0042c5beb239163957a0abc7f47d10694c0367a /drivers/staging | |
parent | 3ac31aa3d0c611fbbcc07dcac7da7574f9b692bc (diff) | |
download | linux-fsl-qoriq-56e16e2ba7582bd85d462e6102ff5828a6c3282b.tar.xz |
fsl-pme: Check for null pointers
Check for null pointers to prevent null pointer dereferencing
Signed-off-by: Mahammad Ismayilzada <mahammad.ismayilzada@freescale.com>
Change-Id: Icc267f51d5ad85187c6ee5d03aa87f8649e124c9
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/fsl_pme2/pme2_ctrl.c | 4 | ||||
-rw-r--r-- | drivers/staging/fsl_pme2/pme2_db.c | 1 | ||||
-rw-r--r-- | drivers/staging/fsl_pme2/pme2_high.c | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/drivers/staging/fsl_pme2/pme2_ctrl.c b/drivers/staging/fsl_pme2/pme2_ctrl.c index 388162b..56e2443 100644 --- a/drivers/staging/fsl_pme2/pme2_ctrl.c +++ b/drivers/staging/fsl_pme2/pme2_ctrl.c @@ -138,6 +138,10 @@ static __init int parse_mem_property(struct device_node *node, const char *name, } else if (zero) { /* map as cacheable, non-guarded */ void *tmpp = ioremap_prot(*addr, *sz, 0); + if (!tmpp) { + pr_err("pme: Failed to remap\n"); + return -EINVAL; + } memset(tmpp, 0, *sz); iounmap(tmpp); } diff --git a/drivers/staging/fsl_pme2/pme2_db.c b/drivers/staging/fsl_pme2/pme2_db.c index 50263d5..0cc13fc 100644 --- a/drivers/staging/fsl_pme2/pme2_db.c +++ b/drivers/staging/fsl_pme2/pme2_db.c @@ -295,6 +295,7 @@ comp_frame_free_rx: kfree(rx_data); goto unmap_input_frame; single_frame_unmap_frame: + kfree(rx_data); unmap_input_frame: free_tx_data: kfree(tx_data); diff --git a/drivers/staging/fsl_pme2/pme2_high.c b/drivers/staging/fsl_pme2/pme2_high.c index 12ab7a1..e39bfc6 100644 --- a/drivers/staging/fsl_pme2/pme2_high.c +++ b/drivers/staging/fsl_pme2/pme2_high.c @@ -933,6 +933,7 @@ static inline void cb_helper(__always_unused struct qman_portal *portal, if (error) do_flags(ctx, 0, 0, PME_CTX_FLAG_DEAD, 0); token = pop_matching_token(ctx, fd); + BUG_ON(!token); if (likely(token->cmd_type == pme_cmd_scan)) { ctx->cb(ctx, fd, token); } else if (token->cmd_type == pme_cmd_pmtcc) { @@ -1002,6 +1003,7 @@ static void cb_ern(__always_unused struct qman_portal *portal, ctx = data->parent; token = pop_matching_token(ctx, &mr->ern.fd); + BUG_ON(!token); if (likely(token->cmd_type == pme_cmd_scan)) { BUG_ON(!ctx->ern_cb); ctx->ern_cb(ctx, mr, token); |