soc: qcom: Add check to handle out of bound access
Adding check in msm_minidump_add_region() to handle scenarios for out of bound access while adding region in minidump table in SMEM. Change-Id: Ic20663dbd2fa8ae96899930a7f7ba79dc204ff5e Signed-off-by: Komal Bajaj <kbajaj@codeaurora.org> Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
This commit is contained in:
parent
8fd8b33f9f
commit
c0ceed81bc
1 changed files with 16 additions and 4 deletions
|
@ -1,6 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2017-2018,2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2018,2020-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) "Minidump: " fmt
|
||||
|
@ -232,6 +232,7 @@ EXPORT_SYMBOL(msm_minidump_update_region);
|
|||
int msm_minidump_add_region(const struct md_region *entry)
|
||||
{
|
||||
u32 entries;
|
||||
u32 toc_init;
|
||||
struct md_region *mdr;
|
||||
|
||||
if (validate_region(entry))
|
||||
|
@ -251,6 +252,19 @@ int msm_minidump_add_region(const struct md_region *entry)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
toc_init = 0;
|
||||
if (minidump_table.md_ss_toc &&
|
||||
(minidump_table.md_ss_toc->md_ss_enable_status ==
|
||||
MD_SS_ENABLED)) {
|
||||
toc_init = 1;
|
||||
if (minidump_table.md_ss_toc->ss_region_count >=
|
||||
MAX_NUM_ENTRIES) {
|
||||
spin_unlock(&mdt_lock);
|
||||
pr_err("Maximum regions in minidump table reached.\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
|
||||
mdr = &minidump_table.entry[entries];
|
||||
strlcpy(mdr->name, entry->name, sizeof(mdr->name));
|
||||
mdr->virt_addr = entry->virt_addr;
|
||||
|
@ -260,9 +274,7 @@ int msm_minidump_add_region(const struct md_region *entry)
|
|||
|
||||
minidump_table.num_regions = entries + 1;
|
||||
|
||||
if (minidump_table.md_ss_toc &&
|
||||
(minidump_table.md_ss_toc->md_ss_enable_status ==
|
||||
MD_SS_ENABLED))
|
||||
if (toc_init)
|
||||
md_update_ss_toc(entry);
|
||||
else
|
||||
pendings++;
|
||||
|
|
Loading…
Reference in a new issue