From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v1 1/1] package/rtl8821au: add patch fixing sprintf error
Date: Sat, 1 Aug 2020 23:40:43 +0200 [thread overview]
Message-ID: <20200801234043.2daaf5ff@gmx.net> (raw)
In-Reply-To: <20200801233410.6ec574ce@gmx.net>
Hello Christian,
On Sat, 1 Aug 2020 23:34:10 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
> Hello Christian,
>
>
> thanks for the patch, but...
>
> On Sat, 1 Aug 2020 13:37:49 -0700, Christian Stewart <christian@paral.in> wrote:
>
> > Fixes compile errors against certain kernels.
> >
> > Signed-off-by: Christian Stewart <christian@paral.in>
> > ---
> > ...f-for-extending-string-which-causes-.patch | 336 ++++++++++++++++++
> > 1 file changed, 336 insertions(+)
> > create mode 100644 package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch
> >
> > 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..6753eefdd9
> > --- /dev/null
> > +++ b/package/rtl8821au/0003-Fix-using-sprintf-for-extending-string-which-causes-.patch
> > @@ -0,0 +1,336 @@
> > +From cc3262a32ce326d89d597bb8557ce0da05240e98 Mon Sep 17 00:00:00 2001
> > +From: Coleman <omegacoleman@gmail.com>
> > +Date: Fri, 17 Jul 2020 08:53:00 +0800
> > +Subject: [PATCH 3/3] Fix using sprintf for extending string, which causes
> > + undefined behavior. (#334)
> > +
>
> The patch should have an note about the upstream source (see [1]), I suspect you
> toke the patch from [2]?
Or instead simple bump the package source version to the latest git commit
(as the patch is upstream committed)... ;-)
Regards,
Peter
>
> The patch itself should have your 'Signed-off-by', see [3]...
>
> With this fixed you can add my 'Reviewed-by'...
>
> Or maybe its worth to try some other 'upstream' sources, e.g. as
> openSUSE [4] does (mentioning previous [5] and [6]), or the first
> google search result [7] (did not find the time to dig into the
> different repositories to find out which one is the best)...
>
> Regards,
> Peter
>
>
> [1] https://buildroot.org/downloads/manual/manual.html#_integrating_patches_found_on_the_web
> [2] https://github.com/abperiasamy/rtl8812AU_8821AU_linux/commit/be57045a0933d64e958878696883e9cf998e1bf3.patch
> [3] https://buildroot.org/downloads/manual/manual.html#_format_and_licensing_of_the_package_patches
> [4] https://github.com/gordboy/rtl8812au
> [5] https://github.com/diederikdehaas/rtl8812AU
> [6] https://github.com/maurossi/rtl8812au/
> [7] https://github.com/gnab/rtl8812au
>
>
> > +---
> > + 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; i<cnts; i++) {
> > + // DBG_871X("0x%02x ", data[i]);
> > +- sprintf(extra, "%s0x%02X ", extra, data[i]);
> > ++ sprintf(extra + strlen(extra), "0x%02X ", data[i]);
> > + }
> > + // DBG_871X("}\n");
> > + } else if (strcmp(tmp[0], "realraw") == 0) {
> > +@@ -9174,17 +9174,17 @@ static int rtw_mp_efuse_get(struct net_device *dev,
> > + sprintf(extra, "\n0x00\t");
> > + for (i=0; i< mapLen; i++) {
> > + // DBG_871X("%02X", rawdata[i]);
> > +- sprintf(extra, "%s%02X", extra, rawdata[i]);
> > ++ sprintf(extra + strlen(extra), "%02X", rawdata[i]);
> > + if ((i & 0xF) == 0xF) {
> > + // DBG_871X("\n");
> > +- sprintf(extra, "%s\n", extra);
> > +- sprintf(extra, "%s0x%02x\t", extra, i+1);
> > ++ sprintf(extra + strlen(extra), "\n");
> > ++ sprintf(extra + strlen(extra), "0x%02x\t", i+1);
> > + } else if ((i & 0x7) == 0x7) {
> > + // DBG_871X("\t");
> > +- sprintf(extra, "%s \t", extra);
> > ++ sprintf(extra + strlen(extra), " \t");
> > + } else {
> > + // DBG_871X(" ");
> > +- sprintf(extra, "%s ", extra);
> > ++ sprintf(extra + strlen(extra), " ");
> > + }
> > + }
> > + // DBG_871X("}\n");
> > +@@ -9269,10 +9269,10 @@ static int rtw_mp_efuse_get(struct net_device *dev,
> > + *extra = 0;
> > + for (i=0; i<cnts; i++) {
> > + // DBG_871X("%02X", data[i]);
> > +- sprintf(extra, "%s%02X", extra, data[i]);
> > ++ sprintf(extra + strlen(extra), "%02X", data[i]);
> > + if (i != (cnts-1)) {
> > + // DBG_871X(":");
> > +- sprintf(extra,"%s:",extra);
> > ++ sprintf(extra + strlen(extra), ":");
> > + }
> > + }
> > + // DBG_871X("}\n");
> > +@@ -9330,10 +9330,10 @@ static int rtw_mp_efuse_get(struct net_device *dev,
> > + *extra = 0;
> > + for (i=0; i<cnts; i++) {
> > + // DBG_871X("0x%02x", data[i]);
> > +- sprintf(extra, "%s0x%02X", extra, data[i]);
> > ++ sprintf(extra + strlen(extra), "0x%02X", data[i]);
> > + if (i != (cnts-1)) {
> > + // DBG_871X(",");
> > +- sprintf(extra,"%s,",extra);
> > ++ sprintf(extra + strlen(extra), ",");
> > + }
> > + }
> > + // DBG_871X("}\n");
> > +@@ -9355,19 +9355,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
> > + sprintf(extra, "\n");
> > + for (i=0; i<512; i+=16) { // set 512 because the iwpriv's extra size have limit 0x7FF
> > + // 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->BTEfuseInitMap[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; i<cnts; i++) {
> > + // DBG_871X("0x%02x ", data[i]);
> > +- sprintf(extra, "%s 0x%02X ", extra, data[i]);
> > ++ sprintf(extra + strlen(extra), " 0x%02X ", data[i]);
> > + }
> > + // DBG_871X("}\n");
> > + DBG_871X(FUNC_ADPT_FMT ": BT MAC=[%s]\n", FUNC_ADPT_ARG(padapter), extra);
> > +@@ -9445,19 +9445,19 @@ static int rtw_mp_efuse_get(struct net_device *dev,
> > + sprintf(extra, "\n");
> > + for (i=0; i<512; 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],"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; i<EFUSE_MAP_SIZE; i+=16) {
> > + // DBG_871X("\t0x%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 ", pEfuseHal->fakeEfuseModifiedMap[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; i<cnts; i++) {
> > + DBG_871X("wlrfkrmap = 0x%02x \n", pEfuseHal->fakeEfuseModifiedMap[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; i<cnts; i++) {
> > + DBG_871X("wlrfkrmap = 0x%02x \n", pEfuseHal->fakeBTEfuseModifiedMap[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; i<pMptCtx->mptOutLen; i++) {
> > +- sprintf(extra, "%s 0x%x ", extra, pMptCtx->mptOutBuf[i]);
> > ++ sprintf(extra + strlen(extra), " 0x%x ", pMptCtx->mptOutBuf[i]);
> > + }
> > + }
> > +
> > +--
> > +2.27.0
> > +
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
next prev parent reply other threads:[~2020-08-01 21:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-01 20:37 [Buildroot] [PATCH v1 1/1] package/rtl8821au: add patch fixing sprintf error Christian Stewart
2020-08-01 21:17 ` Thomas Petazzoni
2020-08-01 21:34 ` Peter Seiderer
2020-08-01 21:40 ` Peter Seiderer [this message]
2020-08-01 21:43 ` Christian Stewart
2020-08-02 10:51 ` Peter Seiderer
2020-08-01 21:51 ` Christian Stewart
2020-08-02 0:33 ` Christian Stewart
2020-08-02 10:57 ` Peter Seiderer
2020-08-02 16:00 ` Christian Stewart
2020-10-25 10:00 ` Peter Seiderer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200801234043.2daaf5ff@gmx.net \
--to=ps.report@gmx.net \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.