From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 26199 invoked from network); 12 Apr 2022 01:06:24 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 12 Apr 2022 01:06:24 -0000 Received: (qmail 11718 invoked by uid 550); 12 Apr 2022 01:06:22 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 11684 invoked from network); 12 Apr 2022 01:06:21 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1649725570; bh=z69/+Of8zFaBJiwQ4lcF84p8hLAKAHbcMnhTUuOKdX0=; h=Date:From:To:Subject; b=MtRFmFiSsgR1bYd/0HKnSsK1b5iEgyovMPIZ/z45bYMoahC1tZRClDbgE1IXaNi/J TILom/nHfH3jduG7GfvXpDjquK/y1GJE1K30khHeMjBxORQfqeGQaFP/zAnS5TWlHY EIHPxSIzGGl6qVeVGsPbc3HsFL5GpILDrSZV0jZjg4uFiFnF2ZSe6IcZgJQFnzkgWW RlZyKp5IZBR54H9wHG/rjE7m4mEMtMbBwCZkvSRfKDCB/8a89AH+i3UysIGxL20GzD IzzpZOw0HrdtXHxg+dDsESBez8QfBCzQ913rVOEzWvurDzGyLWdjrPaXqW9JBh5IbA UBqx/PlnVPo5+z+La7RGe346OezbBrsxAwIYIYQXERBaqoutE3niHYv1OS4wf1puLs m8ZfLV/iWj5DBlgZXYjaGI98vLPXRzyRtcm/OM/jK5B52mGCsO10vv8ucJowvAVhem 3ULZkNdx8DQGlPFkul5FYOH3yQ0y5pVgTat6cgGrGMBIIFszPBpNJG+WDQYbMZcbKN eG663ieG6z2Z9QOvhgWzP0X7pko0bMHoB+vBPdUk1uphxXrtsepZ06POXm+hb5ZCLU soOKjsK1nwDKA/b+tUKCVGShw4da9MjIJkK1HBn6AGWFfAogFuIjuSi4lr6MD06/5+ VEyOT5c7OCGRcb09nf4Jc1K4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1649725570; bh=z69/+Of8zFaBJiwQ4lcF84p8hLAKAHbcMnhTUuOKdX0=; h=Date:From:To:Subject; b=MtRFmFiSsgR1bYd/0HKnSsK1b5iEgyovMPIZ/z45bYMoahC1tZRClDbgE1IXaNi/J TILom/nHfH3jduG7GfvXpDjquK/y1GJE1K30khHeMjBxORQfqeGQaFP/zAnS5TWlHY EIHPxSIzGGl6qVeVGsPbc3HsFL5GpILDrSZV0jZjg4uFiFnF2ZSe6IcZgJQFnzkgWW RlZyKp5IZBR54H9wHG/rjE7m4mEMtMbBwCZkvSRfKDCB/8a89AH+i3UysIGxL20GzD IzzpZOw0HrdtXHxg+dDsESBez8QfBCzQ913rVOEzWvurDzGyLWdjrPaXqW9JBh5IbA UBqx/PlnVPo5+z+La7RGe346OezbBrsxAwIYIYQXERBaqoutE3niHYv1OS4wf1puLs m8ZfLV/iWj5DBlgZXYjaGI98vLPXRzyRtcm/OM/jK5B52mGCsO10vv8ucJowvAVhem 3ULZkNdx8DQGlPFkul5FYOH3yQ0y5pVgTat6cgGrGMBIIFszPBpNJG+WDQYbMZcbKN eG663ieG6z2Z9QOvhgWzP0X7pko0bMHoB+vBPdUk1uphxXrtsepZ06POXm+hb5ZCLU soOKjsK1nwDKA/b+tUKCVGShw4da9MjIJkK1HBn6AGWFfAogFuIjuSi4lr6MD06/5+ VEyOT5c7OCGRcb09nf4Jc1K4= Date: Tue, 12 Apr 2022 03:06:08 +0200 From: Wolf To: musl@lists.openwall.com Message-ID: Mail-Followup-To: musl@lists.openwall.com MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Oye/+BB24qPHlJ7e" Content-Disposition: inline Subject: [musl] Problem with strdupa in C++ code --Oye/+BB24qPHlJ7e Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello, I'm trying to compile C++ project in Alpine (so with musl) and I'm hitting following error: In file included from /usr/include/fortify/string.h:22, from src/main/tools/linux-sandbox-pid1.cc:34: src/main/tools/linux-sandbox-pid1.cc: In function 'int CreateTarget(con= st char*, bool)': src/main/tools/linux-sandbox-pid1.cc:149:28: error: invalid conversion = =66rom 'void*' to 'char*' [-fpermissive] 149 | if (CreateTarget(dirname(strdupa(path)), true) < 0) { | ^ | | | void* In file included from /usr/include/fortify/string.h:22, from src/main/tools/linux-sandbox-pid1.cc:34: /usr/include/string.h:31:15: note: initializing argument 1 of 'char* = strcpy(char*, const char*)' 31 | char *strcpy (char *__restrict, const char *__restrict); | ^~~~~~~~~~~~~~~~ =20 If my reading for musl's code is correct, this is actually a bug in the header file, since the declarations are: void *alloca(size_t); #define strdupa(x) strcpy(alloca(strlen(x)+1),x) As far as I know, there is no automatic conversion from void* to char* in C++. Should this be fixed by turning the define into #define strdupa(x) strcpy((char*)alloca(strlen(x)+1),x) ? I think that should be both valid C and C++. Best regards, Tomas Volf --=20 There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. --Oye/+BB24qPHlJ7e Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmJU0IAACgkQL7/ufbZ/ wamxvhAAkUsB5n51htiEIOkbtDpYzwlewQeQWQFmyTRlDmE/ESYGmDMyW+b7IIb1 cVy3j3JD8v90dgLdZzfWJy2qN15Ysow/G2B5XrEa7ATU1aaq5l/Xaf1QkHeG22yX lm/pG8ZOVAxNxvkZN1BMeQI71Rf2Vz6e9uW9tLGadEymvCYQ5JZzckFp23HC0/zz afozqAG7iVZp6mSxTI2lhSHv1dtL7vH9Jw1iqyLPIXcFImF2tRI8TUDphTkcqjDC uCiq1pccFCli2e/ej2TjAPsQbjFyclxg7P4UWUP8Qxj76CiW5ABhnLhKragvPjbz gHZCDc+Cqu3pKG4bbZwoyk+2GN0ukqIeeZjqflyCAOcRbcv+KZkXOagAbeniUuHV 0kW293mLAp8TOP0XPG9NfAApgSz0nfYoXxozJbpc6XDEdcrt95HlxS1cjoat37le v7JcBl5PBJLlwM3+N5WCtHyCW2QSbJoVa2IF14hxwqu77Pqo/3IZgRmYmQyVetGP EI778P+1PuNrOOeJWlB1hVyXzWqF2Cl1XrpFu72aKlIxMAX8sreKBtxfoBs/rWz7 ywQKvCTBygKE3/JmfuXJ59Mpjn3/pfzb2Ic1gg/KjJYoIQr0L5TACWIYpg0jO314 5iZwjpLJLXJaFti69o3NJBAL11k5D/easWB91icJQZyoR12ulrs= =K3mD -----END PGP SIGNATURE----- --Oye/+BB24qPHlJ7e--