[BugFix][API-1288]fix wifi driver Redzone && remove +4
Only Configure
Affected branch:MR3.0-xx && GSW3.0
Affected module:wifi
Is it addected on both ZXIC and MTK: only MTK
Self-test: Yes
Doc Update: No
Change-Id: I9c01cd8c5a105371cbb00efd459296ca9817057f
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_pcie.c b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_pcie.c
index b4e14ce..978a28d 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_pcie.c
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_pcie.c
@@ -3206,7 +3206,7 @@
bufp = (char *) memblock;
{
- bufp[len] = 0;
+ bufp[len - 1] = 0;
if (nvram_uefi_exists || nvram_file_exists) {
len = process_nvram_vars(bufp, len);
}
@@ -3225,10 +3225,10 @@
if (len % 4) {
len += 4 - (len % 4);
}
- bufp += len;
+ bufp += (len - 1);
*bufp++ = 0;
if (len)
- bcmerror = dhdpcie_downloadvars(bus, memblock, len + 1);
+ bcmerror = dhdpcie_downloadvars(bus, memblock, len);
if (bcmerror) {
DHD_ERROR(("%s: error downloading vars: %d\n",
__FUNCTION__, bcmerror));
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/linux_osl.c b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/linux_osl.c
index 8f0dea5..d7d0c79 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/linux_osl.c
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/linux_osl.c
@@ -772,9 +772,9 @@
flags = CAN_SLEEP() ? GFP_KERNEL: GFP_ATOMIC;
#if defined(DHD_USE_KVMALLOC) && (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0))
- if ((addr = kvmalloc(size+4, flags)) == NULL) {
+ if ((addr = kvmalloc(size, flags)) == NULL) {
#else
- if ((addr = kmalloc(size+4, flags)) == NULL) {
+ if ((addr = kmalloc(size, flags)) == NULL) {
#endif // endif
if (osh)
osh->failed++;
@@ -849,7 +849,7 @@
/* only ASSERT if osh is defined */
if (osh)
ASSERT(osh->magic == OS_HANDLE_MAGIC);
- if ((addr = vmalloc(size+4)) == NULL) {
+ if ((addr = vmalloc(size)) == NULL) {
if (osh)
osh->failed++;
return (NULL);