Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox