1*4882a593SmuzhiyunFrom 5b6641978e8fa68bca05d224a61f8513b010eda8 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Coleman <omegacoleman@gmail.com> 3*4882a593SmuzhiyunDate: Fri, 17 Jul 2020 08:53:00 +0800 4*4882a593SmuzhiyunSubject: [PATCH] Fix using sprintf for extending string, which causes 5*4882a593Smuzhiyun undefined behavior 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/be57045a0933d64e958878696883e9cf998e1bf3.patch] 8*4882a593SmuzhiyunSigned-off-by: Coleman <omegacoleman@gmail.com> 9*4882a593SmuzhiyunSigned-off-by: Christian Stewart <christian@paral.in> 10*4882a593Smuzhiyun--- 11*4882a593Smuzhiyun core/rtw_mp.c | 2 +- 12*4882a593Smuzhiyun os_dep/linux/ioctl_linux.c | 108 ++++++++++++++++++------------------- 13*4882a593Smuzhiyun 2 files changed, 55 insertions(+), 55 deletions(-) 14*4882a593Smuzhiyun 15*4882a593Smuzhiyundiff --git a/core/rtw_mp.c b/core/rtw_mp.c 16*4882a593Smuzhiyunindex c2e400d..989bb3e 100644 17*4882a593Smuzhiyun--- a/core/rtw_mp.c 18*4882a593Smuzhiyun+++ b/core/rtw_mp.c 19*4882a593Smuzhiyun@@ -1871,7 +1871,7 @@ u32 mp_query_psd(PADAPTER pAdapter, u8 *data) 20*4882a593Smuzhiyun } else { 21*4882a593Smuzhiyun psd_data = rtw_GetPSDData(pAdapter, i); 22*4882a593Smuzhiyun } 23*4882a593Smuzhiyun- sprintf(data, "%s%x ", data, psd_data); 24*4882a593Smuzhiyun+ sprintf(data + strlen(data), "%x ", psd_data); 25*4882a593Smuzhiyun i++; 26*4882a593Smuzhiyun } 27*4882a593Smuzhiyun 28*4882a593Smuzhiyundiff --git a/os_dep/linux/ioctl_linux.c b/os_dep/linux/ioctl_linux.c 29*4882a593Smuzhiyunindex c74a153..9543fa3 100644 30*4882a593Smuzhiyun--- a/os_dep/linux/ioctl_linux.c 31*4882a593Smuzhiyun+++ b/os_dep/linux/ioctl_linux.c 32*4882a593Smuzhiyun@@ -9080,19 +9080,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 33*4882a593Smuzhiyun sprintf(extra, "\n"); 34*4882a593Smuzhiyun for (i = 0; i < EFUSE_MAP_SIZE; i += 16) { 35*4882a593Smuzhiyun // DBG_871X("0x%02x\t", i); 36*4882a593Smuzhiyun- sprintf(extra, "%s0x%02x\t", extra, i); 37*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02x\t", i); 38*4882a593Smuzhiyun for (j=0; j<8; j++) { 39*4882a593Smuzhiyun // DBG_871X("%02X ", data[i+j]); 40*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); 41*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]); 42*4882a593Smuzhiyun } 43*4882a593Smuzhiyun // DBG_871X("\t"); 44*4882a593Smuzhiyun- sprintf(extra, "%s\t", extra); 45*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 46*4882a593Smuzhiyun for (; j<16; j++) { 47*4882a593Smuzhiyun // DBG_871X("%02X ", data[i+j]); 48*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); 49*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]); 50*4882a593Smuzhiyun } 51*4882a593Smuzhiyun // DBG_871X("\n"); 52*4882a593Smuzhiyun- sprintf(extra,"%s\n",extra); 53*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 54*4882a593Smuzhiyun } 55*4882a593Smuzhiyun // DBG_871X("\n"); 56*4882a593Smuzhiyun } else if (strcmp(tmp[0], "realmap") == 0) { 57*4882a593Smuzhiyun@@ -9107,19 +9107,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 58*4882a593Smuzhiyun sprintf(extra, "\n"); 59*4882a593Smuzhiyun for (i = 0; i < EFUSE_MAP_SIZE; i += 16) { 60*4882a593Smuzhiyun // DBG_871X("0x%02x\t", i); 61*4882a593Smuzhiyun- sprintf(extra, "%s0x%02x\t", extra, i); 62*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02x\t", i); 63*4882a593Smuzhiyun for (j=0; j<8; j++) { 64*4882a593Smuzhiyun // DBG_871X("%02X ", data[i+j]); 65*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); 66*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]); 67*4882a593Smuzhiyun } 68*4882a593Smuzhiyun // DBG_871X("\t"); 69*4882a593Smuzhiyun- sprintf(extra, "%s\t", extra); 70*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 71*4882a593Smuzhiyun for (; j<16; j++) { 72*4882a593Smuzhiyun // DBG_871X("%02X ", data[i+j]); 73*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); 74*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]); 75*4882a593Smuzhiyun } 76*4882a593Smuzhiyun // DBG_871X("\n"); 77*4882a593Smuzhiyun- sprintf(extra,"%s\n",extra); 78*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 79*4882a593Smuzhiyun } 80*4882a593Smuzhiyun // DBG_871X("\n"); 81*4882a593Smuzhiyun } else if (strcmp(tmp[0], "rmap") == 0) { 82*4882a593Smuzhiyun@@ -9158,7 +9158,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, 83*4882a593Smuzhiyun *extra = 0; 84*4882a593Smuzhiyun for (i=0; i<cnts; i++) { 85*4882a593Smuzhiyun // DBG_871X("0x%02x ", data[i]); 86*4882a593Smuzhiyun- sprintf(extra, "%s0x%02X ", extra, data[i]); 87*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02X ", data[i]); 88*4882a593Smuzhiyun } 89*4882a593Smuzhiyun // DBG_871X("}\n"); 90*4882a593Smuzhiyun } else if (strcmp(tmp[0], "realraw") == 0) { 91*4882a593Smuzhiyun@@ -9174,17 +9174,17 @@ static int rtw_mp_efuse_get(struct net_device *dev, 92*4882a593Smuzhiyun sprintf(extra, "\n0x00\t"); 93*4882a593Smuzhiyun for (i=0; i< mapLen; i++) { 94*4882a593Smuzhiyun // DBG_871X("%02X", rawdata[i]); 95*4882a593Smuzhiyun- sprintf(extra, "%s%02X", extra, rawdata[i]); 96*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X", rawdata[i]); 97*4882a593Smuzhiyun if ((i & 0xF) == 0xF) { 98*4882a593Smuzhiyun // DBG_871X("\n"); 99*4882a593Smuzhiyun- sprintf(extra, "%s\n", extra); 100*4882a593Smuzhiyun- sprintf(extra, "%s0x%02x\t", extra, i+1); 101*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 102*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02x\t", i+1); 103*4882a593Smuzhiyun } else if ((i & 0x7) == 0x7) { 104*4882a593Smuzhiyun // DBG_871X("\t"); 105*4882a593Smuzhiyun- sprintf(extra, "%s \t", extra); 106*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " \t"); 107*4882a593Smuzhiyun } else { 108*4882a593Smuzhiyun // DBG_871X(" "); 109*4882a593Smuzhiyun- sprintf(extra, "%s ", extra); 110*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " "); 111*4882a593Smuzhiyun } 112*4882a593Smuzhiyun } 113*4882a593Smuzhiyun // DBG_871X("}\n"); 114*4882a593Smuzhiyun@@ -9269,10 +9269,10 @@ static int rtw_mp_efuse_get(struct net_device *dev, 115*4882a593Smuzhiyun *extra = 0; 116*4882a593Smuzhiyun for (i=0; i<cnts; i++) { 117*4882a593Smuzhiyun // DBG_871X("%02X", data[i]); 118*4882a593Smuzhiyun- sprintf(extra, "%s%02X", extra, data[i]); 119*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X", data[i]); 120*4882a593Smuzhiyun if (i != (cnts-1)) { 121*4882a593Smuzhiyun // DBG_871X(":"); 122*4882a593Smuzhiyun- sprintf(extra,"%s:",extra); 123*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), ":"); 124*4882a593Smuzhiyun } 125*4882a593Smuzhiyun } 126*4882a593Smuzhiyun // DBG_871X("}\n"); 127*4882a593Smuzhiyun@@ -9330,10 +9330,10 @@ static int rtw_mp_efuse_get(struct net_device *dev, 128*4882a593Smuzhiyun *extra = 0; 129*4882a593Smuzhiyun for (i=0; i<cnts; i++) { 130*4882a593Smuzhiyun // DBG_871X("0x%02x", data[i]); 131*4882a593Smuzhiyun- sprintf(extra, "%s0x%02X", extra, data[i]); 132*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02X", data[i]); 133*4882a593Smuzhiyun if (i != (cnts-1)) { 134*4882a593Smuzhiyun // DBG_871X(","); 135*4882a593Smuzhiyun- sprintf(extra,"%s,",extra); 136*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), ","); 137*4882a593Smuzhiyun } 138*4882a593Smuzhiyun } 139*4882a593Smuzhiyun // DBG_871X("}\n"); 140*4882a593Smuzhiyun@@ -9355,19 +9355,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 141*4882a593Smuzhiyun sprintf(extra, "\n"); 142*4882a593Smuzhiyun for (i=0; i<512; i+=16) { // set 512 because the iwpriv's extra size have limit 0x7FF 143*4882a593Smuzhiyun // DBG_871X("0x%03x\t", i); 144*4882a593Smuzhiyun- sprintf(extra, "%s0x%03x\t", extra, i); 145*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%03x\t", i); 146*4882a593Smuzhiyun for (j=0; j<8; j++) { 147*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]); 148*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); 149*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); 150*4882a593Smuzhiyun } 151*4882a593Smuzhiyun // DBG_871X("\t"); 152*4882a593Smuzhiyun- sprintf(extra,"%s\t",extra); 153*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 154*4882a593Smuzhiyun for (; j<16; j++) { 155*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]); 156*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); 157*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); 158*4882a593Smuzhiyun } 159*4882a593Smuzhiyun // DBG_871X("\n"); 160*4882a593Smuzhiyun- sprintf(extra, "%s\n", extra); 161*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 162*4882a593Smuzhiyun } 163*4882a593Smuzhiyun // DBG_871X("\n"); 164*4882a593Smuzhiyun } else if (strcmp(tmp[0],"btbmap") == 0) { 165*4882a593Smuzhiyun@@ -9384,19 +9384,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 166*4882a593Smuzhiyun sprintf(extra, "\n"); 167*4882a593Smuzhiyun for (i=512; i<1024 ; i+=16) { 168*4882a593Smuzhiyun // DBG_871X("0x%03x\t", i); 169*4882a593Smuzhiyun- sprintf(extra, "%s0x%03x\t", extra, i); 170*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%03x\t", i); 171*4882a593Smuzhiyun for (j=0; j<8; j++) { 172*4882a593Smuzhiyun // DBG_871X("%02X ", data[i+j]); 173*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); 174*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); 175*4882a593Smuzhiyun } 176*4882a593Smuzhiyun // DBG_871X("\t"); 177*4882a593Smuzhiyun- sprintf(extra,"%s\t",extra); 178*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 179*4882a593Smuzhiyun for (; j<16; j++) { 180*4882a593Smuzhiyun // DBG_871X("%02X ", data[i+j]); 181*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); 182*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); 183*4882a593Smuzhiyun } 184*4882a593Smuzhiyun // DBG_871X("\n"); 185*4882a593Smuzhiyun- sprintf(extra, "%s\n", extra); 186*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 187*4882a593Smuzhiyun } 188*4882a593Smuzhiyun // DBG_871X("\n"); 189*4882a593Smuzhiyun } else if (strcmp(tmp[0],"btrmap") == 0) { 190*4882a593Smuzhiyun@@ -9436,7 +9436,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, 191*4882a593Smuzhiyun // DBG_871X("%s: bt efuse data={", __FUNCTION__); 192*4882a593Smuzhiyun for (i=0; i<cnts; i++) { 193*4882a593Smuzhiyun // DBG_871X("0x%02x ", data[i]); 194*4882a593Smuzhiyun- sprintf(extra, "%s 0x%02X ", extra, data[i]); 195*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " 0x%02X ", data[i]); 196*4882a593Smuzhiyun } 197*4882a593Smuzhiyun // DBG_871X("}\n"); 198*4882a593Smuzhiyun DBG_871X(FUNC_ADPT_FMT ": BT MAC=[%s]\n", FUNC_ADPT_ARG(padapter), extra); 199*4882a593Smuzhiyun@@ -9445,19 +9445,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 200*4882a593Smuzhiyun sprintf(extra, "\n"); 201*4882a593Smuzhiyun for (i=0; i<512; i+=16) { 202*4882a593Smuzhiyun // DBG_871X("0x%03x\t", i); 203*4882a593Smuzhiyun- sprintf(extra, "%s0x%03x\t", extra, i); 204*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%03x\t", i); 205*4882a593Smuzhiyun for (j=0; j<8; j++) { 206*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 207*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 208*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 209*4882a593Smuzhiyun } 210*4882a593Smuzhiyun // DBG_871X("\t"); 211*4882a593Smuzhiyun- sprintf(extra, "%s\t", extra); 212*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 213*4882a593Smuzhiyun for (; j<16; j++) { 214*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 215*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 216*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 217*4882a593Smuzhiyun } 218*4882a593Smuzhiyun // DBG_871X("\n"); 219*4882a593Smuzhiyun- sprintf(extra, "%s\n", extra); 220*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 221*4882a593Smuzhiyun } 222*4882a593Smuzhiyun // DBG_871X("\n"); 223*4882a593Smuzhiyun } else if (strcmp(tmp[0],"btbfake") == 0) { 224*4882a593Smuzhiyun@@ -9465,19 +9465,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 225*4882a593Smuzhiyun sprintf(extra, "\n"); 226*4882a593Smuzhiyun for (i=512; i<1024; i+=16) { 227*4882a593Smuzhiyun // DBG_871X("0x%03x\t", i); 228*4882a593Smuzhiyun- sprintf(extra, "%s0x%03x\t", extra, i); 229*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%03x\t", i); 230*4882a593Smuzhiyun for (j=0; j<8; j++) { 231*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 232*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 233*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 234*4882a593Smuzhiyun } 235*4882a593Smuzhiyun // DBG_871X("\t"); 236*4882a593Smuzhiyun- sprintf(extra, "%s\t", extra); 237*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 238*4882a593Smuzhiyun for (; j<16; j++) { 239*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 240*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 241*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); 242*4882a593Smuzhiyun } 243*4882a593Smuzhiyun // DBG_871X("\n"); 244*4882a593Smuzhiyun- sprintf(extra, "%s\n", extra); 245*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 246*4882a593Smuzhiyun } 247*4882a593Smuzhiyun // DBG_871X("\n"); 248*4882a593Smuzhiyun } else if (strcmp(tmp[0],"wlrfkmap")== 0) { 249*4882a593Smuzhiyun@@ -9485,19 +9485,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, 250*4882a593Smuzhiyun sprintf(extra, "\n"); 251*4882a593Smuzhiyun for (i=0; i<EFUSE_MAP_SIZE; i+=16) { 252*4882a593Smuzhiyun // DBG_871X("\t0x%02x\t", i); 253*4882a593Smuzhiyun- sprintf(extra, "%s0x%02x\t", extra, i); 254*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02x\t", i); 255*4882a593Smuzhiyun for (j=0; j<8; j++) { 256*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); 257*4882a593Smuzhiyun- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); 258*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); 259*4882a593Smuzhiyun } 260*4882a593Smuzhiyun // DBG_871X("\t"); 261*4882a593Smuzhiyun- sprintf(extra, "%s\t", extra); 262*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\t"); 263*4882a593Smuzhiyun for (; j<16; j++) { 264*4882a593Smuzhiyun // DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); 265*4882a593Smuzhiyun- sprintf(extra, "%s %02X", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); 266*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " %02X", pEfuseHal->fakeEfuseModifiedMap[i+j]); 267*4882a593Smuzhiyun } 268*4882a593Smuzhiyun // DBG_871X("\n"); 269*4882a593Smuzhiyun- sprintf(extra, "%s\n", extra); 270*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "\n"); 271*4882a593Smuzhiyun } 272*4882a593Smuzhiyun // DBG_871X("\n"); 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun@@ -9523,7 +9523,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, 275*4882a593Smuzhiyun *extra = 0; 276*4882a593Smuzhiyun for (i=0; i<cnts; i++) { 277*4882a593Smuzhiyun DBG_871X("wlrfkrmap = 0x%02x \n", pEfuseHal->fakeEfuseModifiedMap[addr+i]); 278*4882a593Smuzhiyun- sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[addr+i]); 279*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeEfuseModifiedMap[addr+i]); 280*4882a593Smuzhiyun } 281*4882a593Smuzhiyun } else if (strcmp(tmp[0],"btrfkrmap")== 0) { 282*4882a593Smuzhiyun if ((tmp[1]==NULL) || (tmp[2]==NULL)) { 283*4882a593Smuzhiyun@@ -9547,7 +9547,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, 284*4882a593Smuzhiyun *extra = 0; 285*4882a593Smuzhiyun for (i=0; i<cnts; i++) { 286*4882a593Smuzhiyun DBG_871X("wlrfkrmap = 0x%02x \n", pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); 287*4882a593Smuzhiyun- sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); 288*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); 289*4882a593Smuzhiyun } 290*4882a593Smuzhiyun } else { 291*4882a593Smuzhiyun sprintf(extra, "Command not found!"); 292*4882a593Smuzhiyun@@ -10409,7 +10409,7 @@ static int rtw_mp_read_reg(struct net_device *dev, 293*4882a593Smuzhiyun pnext++; 294*4882a593Smuzhiyun if ( *pnext != '\0' ) { 295*4882a593Smuzhiyun strtout = simple_strtoul (pnext , &ptmp, 16); 296*4882a593Smuzhiyun- sprintf( extra, "%s %d" ,extra ,strtout ); 297*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " %d" ,strtout ); 298*4882a593Smuzhiyun } else { 299*4882a593Smuzhiyun break; 300*4882a593Smuzhiyun } 301*4882a593Smuzhiyun@@ -10443,7 +10443,7 @@ static int rtw_mp_read_reg(struct net_device *dev, 302*4882a593Smuzhiyun pnext++; 303*4882a593Smuzhiyun if ( *pnext != '\0' ) { 304*4882a593Smuzhiyun strtout = simple_strtoul (pnext , &ptmp, 16); 305*4882a593Smuzhiyun- sprintf( extra, "%s %d" ,extra ,strtout ); 306*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " %d" ,strtout ); 307*4882a593Smuzhiyun } else { 308*4882a593Smuzhiyun break; 309*4882a593Smuzhiyun } 310*4882a593Smuzhiyun@@ -10566,7 +10566,7 @@ static int rtw_mp_read_rf(struct net_device *dev, 311*4882a593Smuzhiyun pnext++; 312*4882a593Smuzhiyun if ( *pnext != '\0' ) { 313*4882a593Smuzhiyun strtou = simple_strtoul (pnext , &ptmp, 16); 314*4882a593Smuzhiyun- sprintf( extra, "%s %d" ,extra ,strtou ); 315*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " %d" ,strtou ); 316*4882a593Smuzhiyun } else { 317*4882a593Smuzhiyun break; 318*4882a593Smuzhiyun } 319*4882a593Smuzhiyun@@ -12155,14 +12155,14 @@ todo: 320*4882a593Smuzhiyun goto exit; 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun #ifdef CONFIG_RTL8723A 323*4882a593Smuzhiyun- sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x3f)); 324*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x3f)); 325*4882a593Smuzhiyun #else 326*4882a593Smuzhiyun- sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x1f)); 327*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x1f)); 328*4882a593Smuzhiyun #endif 329*4882a593Smuzhiyun } 330*4882a593Smuzhiyun } else { 331*4882a593Smuzhiyun for (i=4; i<pMptCtx->mptOutLen; i++) { 332*4882a593Smuzhiyun- sprintf(extra, "%s 0x%x ", extra, pMptCtx->mptOutBuf[i]); 333*4882a593Smuzhiyun+ sprintf(extra + strlen(extra), " 0x%x ", pMptCtx->mptOutBuf[i]); 334*4882a593Smuzhiyun } 335*4882a593Smuzhiyun } 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun-- 338*4882a593Smuzhiyun2.28.0 339*4882a593Smuzhiyun 340