From patchwork Sat Aug 8 17:38:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Stewart X-Patchwork-Id: 1342541 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=paral.in Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BP8b22d8qz9sT6 for ; Sun, 9 Aug 2020 03:38:22 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id CB5C120534; Sat, 8 Aug 2020 17:38:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3FQUEFzMunot; Sat, 8 Aug 2020 17:38:09 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 782A2203FA; Sat, 8 Aug 2020 17:38:09 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 7232D1BF36E for ; Sat, 8 Aug 2020 17:38:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 67713884DB for ; Sat, 8 Aug 2020 17:38:07 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pXqUXM74IxXi for ; Sat, 8 Aug 2020 17:38:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) by whitealder.osuosl.org (Postfix) with ESMTPS id 06D96884B7 for ; Sat, 8 Aug 2020 17:38:05 +0000 (UTC) Received: by mail-io1-f45.google.com with SMTP id j8so4999828ioe.9 for ; Sat, 08 Aug 2020 10:38:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=h3XRzfQ7ph3zNNWt3Iuf5otktBLsQL+aMSzlA1Uourc=; b=BKTFRreyGgsN2s04KJhPxBa0IV9nkpoTy5AIWWNauuTNjFfbR1q3RND5WwEXOFXgPT v2AlvoNf+UC7gRfIxz540reUz802XMmGWXqU9mNrgk0e7/SZCvdYijlHLrlgqCIGCH+t 6IifL8Noxu+q0pbDtEgV90qxU8a2/XSBbPcLBel3HTZ0ejKGQHIfnUne+MZntaFtoSAA o2QHuPTemokHdaF4TKwBeua/Ow7DRa41aaPgU21CPWLyiPR2REx5Egn3AUdhCKv9wWRF mzmAlK4w0SbbPK3r7UraHUQfLVtxdQ2iKY7iHz7ysWhtvexxXWEHAg2V2L0I7bZDxPH3 MLSw== X-Gm-Message-State: AOAM532LvLzaMMgq3e88PuaDsW4Nab3E9CxmFFclSOWLxxfYEOwvZ3ol CBXQAiodgiMCNWXIbGO8y7s0Z7ZZ X-Google-Smtp-Source: ABdhPJyz5Yq4sU3vYeUeVq+DFd3mqOQPQWadAKp3PWuXis3oVWwrIke45tTs3zBw3jd6xWozUTNEeA== X-Received: by 2002:a02:9a05:: with SMTP id b5mr10932537jal.123.1596908283946; Sat, 08 Aug 2020 10:38:03 -0700 (PDT) Received: from localhost.localdomain ([2600:8802:7fa0:300:6d99:7cb:1577:4bdb]) by smtp.gmail.com with ESMTPSA id v28sm8274139ili.27.2020.08.08.10.38.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2020 10:38:03 -0700 (PDT) From: Christian Stewart To: buildroot@buildroot.org Date: Sat, 8 Aug 2020 10:38:00 -0700 Message-Id: <20200808173800.2034897-1-christian@paral.in> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2 1/1] package/rtl8821au: add patch fixing sprintf error X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Christian Stewart , Peter Korsgaard , Peter Seiderer , Christian Stewart , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Fixes compile errors against certain kernels. Signed-off-by: Christian Stewart Reviewed-by: Peter Seiderer --- v1 -> v2: -cjs: format patch with -N -cjs: add upstream + signed-off to patches -cjs: thanks for the review from Peter Signed-off-by: Christian Stewart --- ...-fallthrough-comments-for-kernel-5.3.patch | 7 +- ...river-crashes-from-aircrack-ng-rtl88.patch | 5 +- ...f-for-extending-string-which-causes-.patch | 339 ++++++++++++++++++ 3 files changed, 346 insertions(+), 5 deletions(-) create mode 100644 package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch diff --git a/package/rtl8821au/0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch b/package/rtl8821au/0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch index d323e8f938..00e801b6b1 100644 --- a/package/rtl8821au/0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch +++ b/package/rtl8821au/0001-Fix-implicit-fallthrough-comments-for-kernel-5.3.patch @@ -1,10 +1,11 @@ -From f41695e4069404639690d98c7aadfe72117965a6 Mon Sep 17 00:00:00 2001 +From 99f1e8bd7172ddf9613db3531a8b37921ed73351 Mon Sep 17 00:00:00 2001 From: Jesper Skov Date: Fri, 25 Oct 2019 10:05:41 +0200 Subject: [PATCH] Fix implicit fallthrough comments for kernel 5.3 -[Upstram: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/e8a30a4c5a80efbbd5b1dbfe11b22916df4492f9.patch] +[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/e8a30a4c5a80efbbd5b1dbfe11b22916df4492f9.patch] Signed-off-by: Peter Seiderer +Signed-off-by: Christian Stewart --- core/rtw_mlme_ext.c | 2 ++ 1 file changed, 2 insertions(+) @@ -24,5 +25,5 @@ index 24565ea..380f507 100644 _mgt_dispatcher(padapter, ptable, precv_frame); #ifdef CONFIG_HOSTAPD_MLME -- -2.26.0 +2.28.0 diff --git a/package/rtl8821au/0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch b/package/rtl8821au/0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch index 6b1b70270a..213ea806b0 100644 --- a/package/rtl8821au/0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch +++ b/package/rtl8821au/0002-Fix-kernel-5.3-driver-crashes-from-aircrack-ng-rtl88.patch @@ -1,10 +1,11 @@ -From b7f8f8572d5abca6e1f0163a583628c0207d0be4 Mon Sep 17 00:00:00 2001 +From cde2dbf6e94e00fcf198422b03de01d3090675d9 Mon Sep 17 00:00:00 2001 From: Jesper Skov Date: Fri, 25 Oct 2019 10:10:29 +0200 Subject: [PATCH] Fix kernel 5.3 driver crashes, from aircrack-ng/rtl8812au#421 [Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/822b485d36d6f72304a219c3be228f40968b542b.patch] Signed-off-by: Peter Seiderer +Signed-off-by: Christian Stewart --- os_dep/linux/rtw_cfgvendor.c | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) @@ -164,5 +165,5 @@ index e7ba90a..81fc8af 100644 } }; -- -2.26.0 +2.28.0 diff --git a/package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch b/package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch new file mode 100644 index 0000000000..2c4b595c37 --- /dev/null +++ b/package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch @@ -0,0 +1,339 @@ +From 5b6641978e8fa68bca05d224a61f8513b010eda8 Mon Sep 17 00:00:00 2001 +From: Coleman +Date: Fri, 17 Jul 2020 08:53:00 +0800 +Subject: [PATCH] Fix using sprintf for extending string, which causes + undefined behavior + +[Upstream: https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/be57045a0933d64e958878696883e9cf998e1bf3.patch] +Signed-off-by: Coleman +Signed-off-by: Christian Stewart +--- + core/rtw_mp.c | 2 +- + os_dep/linux/ioctl_linux.c | 108 ++++++++++++++++++------------------- + 2 files changed, 55 insertions(+), 55 deletions(-) + +diff --git a/core/rtw_mp.c b/core/rtw_mp.c +index c2e400d..989bb3e 100644 +--- a/core/rtw_mp.c ++++ b/core/rtw_mp.c +@@ -1871,7 +1871,7 @@ u32 mp_query_psd(PADAPTER pAdapter, u8 *data) + } else { + psd_data = rtw_GetPSDData(pAdapter, i); + } +- sprintf(data, "%s%x ", data, psd_data); ++ sprintf(data + strlen(data), "%x ", psd_data); + i++; + } + +diff --git a/os_dep/linux/ioctl_linux.c b/os_dep/linux/ioctl_linux.c +index c74a153..9543fa3 100644 +--- a/os_dep/linux/ioctl_linux.c ++++ b/os_dep/linux/ioctl_linux.c +@@ -9080,19 +9080,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, + sprintf(extra, "\n"); + for (i = 0; i < EFUSE_MAP_SIZE; i += 16) { + // DBG_871X("0x%02x\t", i); +- sprintf(extra, "%s0x%02x\t", extra, i); ++ sprintf(extra + strlen(extra), "0x%02x\t", i); + for (j=0; j<8; j++) { + // DBG_871X("%02X ", data[i+j]); +- sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra, "%s\t", extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", data[i+j]); +- sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", PROMContent[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra,"%s\n",extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + } else if (strcmp(tmp[0], "realmap") == 0) { +@@ -9107,19 +9107,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, + sprintf(extra, "\n"); + for (i = 0; i < EFUSE_MAP_SIZE; i += 16) { + // DBG_871X("0x%02x\t", i); +- sprintf(extra, "%s0x%02x\t", extra, i); ++ sprintf(extra + strlen(extra), "0x%02x\t", i); + for (j=0; j<8; j++) { + // DBG_871X("%02X ", data[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra, "%s\t", extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", data[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseInitMap[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra,"%s\n",extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + } else if (strcmp(tmp[0], "rmap") == 0) { +@@ -9158,7 +9158,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, + *extra = 0; + for (i=0; iBTEfuseInitMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra,"%s\t",extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra, "%s\n", extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + } else if (strcmp(tmp[0],"btbmap") == 0) { +@@ -9384,19 +9384,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, + sprintf(extra, "\n"); + for (i=512; i<1024 ; i+=16) { + // DBG_871X("0x%03x\t", i); +- sprintf(extra, "%s0x%03x\t", extra, i); ++ sprintf(extra + strlen(extra), "0x%03x\t", i); + for (j=0; j<8; j++) { + // DBG_871X("%02X ", data[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra,"%s\t",extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", data[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->BTEfuseInitMap[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra, "%s\n", extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + } else if (strcmp(tmp[0],"btrmap") == 0) { +@@ -9436,7 +9436,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, + // DBG_871X("%s: bt efuse data={", __FUNCTION__); + for (i=0; ifakeBTEfuseModifiedMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra, "%s\t", extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra, "%s\n", extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + } else if (strcmp(tmp[0],"btbfake") == 0) { +@@ -9465,19 +9465,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, + sprintf(extra, "\n"); + for (i=512; i<1024; i+=16) { + // DBG_871X("0x%03x\t", i); +- sprintf(extra, "%s0x%03x\t", extra, i); ++ sprintf(extra + strlen(extra), "0x%03x\t", i); + for (j=0; j<8; j++) { + // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra, "%s\t", extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra, "%s\n", extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + } else if (strcmp(tmp[0],"wlrfkmap")== 0) { +@@ -9485,19 +9485,19 @@ static int rtw_mp_efuse_get(struct net_device *dev, + sprintf(extra, "\n"); + for (i=0; ifakeEfuseModifiedMap[i+j]); +- sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); ++ sprintf(extra + strlen(extra), "%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); + } + // DBG_871X("\t"); +- sprintf(extra, "%s\t", extra); ++ sprintf(extra + strlen(extra), "\t"); + for (; j<16; j++) { + // DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); +- sprintf(extra, "%s %02X", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); ++ sprintf(extra + strlen(extra), " %02X", pEfuseHal->fakeEfuseModifiedMap[i+j]); + } + // DBG_871X("\n"); +- sprintf(extra, "%s\n", extra); ++ sprintf(extra + strlen(extra), "\n"); + } + // DBG_871X("\n"); + +@@ -9523,7 +9523,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, + *extra = 0; + for (i=0; ifakeEfuseModifiedMap[addr+i]); +- sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[addr+i]); ++ sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeEfuseModifiedMap[addr+i]); + } + } else if (strcmp(tmp[0],"btrfkrmap")== 0) { + if ((tmp[1]==NULL) || (tmp[2]==NULL)) { +@@ -9547,7 +9547,7 @@ static int rtw_mp_efuse_get(struct net_device *dev, + *extra = 0; + for (i=0; ifakeBTEfuseModifiedMap[addr+i]); +- sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); ++ sprintf(extra + strlen(extra), "0x%02X ", pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); + } + } else { + sprintf(extra, "Command not found!"); +@@ -10409,7 +10409,7 @@ static int rtw_mp_read_reg(struct net_device *dev, + pnext++; + if ( *pnext != '\0' ) { + strtout = simple_strtoul (pnext , &ptmp, 16); +- sprintf( extra, "%s %d" ,extra ,strtout ); ++ sprintf(extra + strlen(extra), " %d" ,strtout ); + } else { + break; + } +@@ -10443,7 +10443,7 @@ static int rtw_mp_read_reg(struct net_device *dev, + pnext++; + if ( *pnext != '\0' ) { + strtout = simple_strtoul (pnext , &ptmp, 16); +- sprintf( extra, "%s %d" ,extra ,strtout ); ++ sprintf(extra + strlen(extra), " %d" ,strtout ); + } else { + break; + } +@@ -10566,7 +10566,7 @@ static int rtw_mp_read_rf(struct net_device *dev, + pnext++; + if ( *pnext != '\0' ) { + strtou = simple_strtoul (pnext , &ptmp, 16); +- sprintf( extra, "%s %d" ,extra ,strtou ); ++ sprintf(extra + strlen(extra), " %d" ,strtou ); + } else { + break; + } +@@ -12155,14 +12155,14 @@ todo: + goto exit; + + #ifdef CONFIG_RTL8723A +- sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x3f)); ++ sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x3f)); + #else +- sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i]& 0x1f)); ++ sprintf(extra + strlen(extra), " %d ", (pMptCtx->mptOutBuf[i]& 0x1f)); + #endif + } + } else { + for (i=4; imptOutLen; i++) { +- sprintf(extra, "%s 0x%x ", extra, pMptCtx->mptOutBuf[i]); ++ sprintf(extra + strlen(extra), " 0x%x ", pMptCtx->mptOutBuf[i]); + } + } + +-- +2.28.0 +