Re: [PATCH] eapol_test build under GCC-10

Didier 'OdyX' Raboud <[email protected]>
Newsgroups gmane.linux.drivers.hostap
Organization Debian - The Universal OS
Message-ID <[email protected]>
Le dimanche, 16 février 2020, 10.32:22 h CET Jouni Malinen a écrit :
> On Sat, Feb 15, 2020 at 11:02:50PM +0100, Didier 'OdyX' Raboud wrote:
> > I'm trying to get eapol_test built by default in Debian [0,1] and it seems
> > that some minor parts don't build in current Debian sid's GCC, so here
> > comes a quick patch to make these to correctly. They're just printf
> > reformatting.
> > 
> > Looking forward to integrate these in wpasupplicant!
> 
> Thanks. What's the error (or warning?) from gcc that breaks this?

cc -c -o wpa_supplicant.o -g -O2 -fdebug-prefix-map=/home/didier/hack/wpasupplicant=. -fstack-protector-strong -Wformat -Werror=format-security -MMD -Wall -Wdate-time -D_FORTIFY_SOURCE=2  -I/home/didier/hack/wpasupplicant/src -I/home/didier/hack/wpasupplicant/src/utils -DGIT_VERSION_STR_POSTFIX=\"-debian/2%2.9+git20200213+877d9a0-1-3-g1c103e5af+\" -Werror -DEAPOL_TEST -DCONFIG_HT_OVERRIDES -DCONFIG_VHT_OVERRIDES -DCONFIG_BACKEND_FILE -DCONFIG_IEEE80211R -DCONFIG_SAE -DCONFIG_DPP -DCONFIG_OWE -DCONFIG_TDLS -DCONFIG_PMKSA_CACHE_EXTERNAL -DCONFIG_IBSS_RSN -DCONFIG_NO_VLAN -DCONFIG_P2P -DCONFIG_WIFI_DISPLAY -DCONFIG_HS20 -DCONFIG_INTERWORKING  -DCONFIG_DRIVER_WIRED -DCONFIG_DRIVER_MACSEC_LINUX -DCONFIG_DRIVER_NL80211 -DCONFIG_DRIVER_NL80211_QCA -DCONFIG_DRIVER_NONE -I/usr/include/libnl3 -DCONFIG_LIBNL3_ROUTE  -DCONFIG_DRIVER_WEXT -DCONFIG_WIRELESS_EXTENSION  -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_GTC -DEAP_OTP -DEAP_SIM -DEAP_LEAP -DEAP_PSK -DEAP_AKA -DEAP_AKA_PRIME -DEAP_FAST -DEAP_PAX -DEAP_SAKE -DEAP_GPSK -DEAP_GPSK_SHA256 -DEAP_PWD -DEAP_EKE -DCONFIG_WPS -DEAP_WSC -DCONFIG_WPS_NFC -DCONFIG_WPS_OOB -DCONFIG_WPS_ER -DCONFIG_WPS_UPNP -DCONFIG_WPS_REG_DISABLE_OPEN -DEAP_IKEV2 -DEAP_TNC -DCONFIG_MACSEC -DIEEE8021X_EAPOL -DCONFIG_AP -DCONFIG_NO_RADIUS -DCONFIG_NO_ACCOUNTING -DCONFIG_NO_VLAN -DEAP_SERVER -DEAP_SERVER_IDENTITY -DCONFIG_IEEE80211N -DCONFIG_IEEE80211AC -DNEED_AP_MLME -DEAP_SERVER_WSC -DCONFIG_NO_RADIUS -DCONFIG_ACS -DPCSC_FUNCS -I/usr/include/PCSC -DPKCS12_FUNCS -DCONFIG_SMARTCARD -DCONFIG_TLSV11 -DCONFIG_TLSV12 -DEAP_TLS_OPENSSL -DTLS_DEFAULT_CIPHERS=\""DEFAULT@SECLEVEL=1"\" -DCONFIG_DES -DCONFIG_SHA256 -DCONFIG_HMAC_SHA256_KDF -DCONFIG_HMAC_SHA384_KDF -DCONFIG_HMAC_SHA512_KDF -DCONFIG_SHA384 -DCONFIG_SHA512 -DALL_DH_GROUPS -DCONFIG_ECC -DCONFIG_GETRANDOM -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_CTRL_IFACE_DBUS_NEW -DCONFIG_CTRL_IFACE_DBUS_INTRO -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -DCONFIG_SME -DCONFIG_DEBUG_SYSLOG -DLOG_HOSTAPD="LOG_DAEMON" -DCONFIG_DEBUG_LINUX_TRACING -DCONFIG_DEBUG_FILE -DCONFIG_DELAYED_MIC_ERROR_REPORT -DCONFIG_BGSCAN_SIMPLE -DCONFIG_BGSCAN_LEARN -DCONFIG_BGSCAN -DCONFIG_AUTOSCAN_EXPONENTIAL -DCONFIG_AUTOSCAN_PERIODIC -DCONFIG_AUTOSCAN -DCONFIG_GAS_SERVER -DCONFIG_GAS -DCONFIG_OFFCHANNEL -DCONFIG_JSON -DCONFIG_FST wpa_supplicant.c
wpa_supplicant.c: In function ‘wpa_supplicant_init’:
wpa_supplicant.c:6821:24: error: unknown conversion type character ‘+’ in format [-Werror=format=]
 6821 |  wpa_printf(MSG_DEBUG, "wpa_supplicant v" VERSION_STR);
      |                        ^~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

… and …

cc -c -o eapol_test.o -g -O2 -fdebug-prefix-map=/home/didier/hack/wpasupplicant=. -fstack-protector-strong -Wformat -Werror=format-security -MMD -Wall -Wdate-time -D_FORTIFY_SOURCE=2  -I/home/didier/hack/wpasupplicant/src -I/home/didier/hack/wpasupplicant/src/utils -DGIT_VERSION_STR_POSTFIX=\"-debian/2%2.9+git20200213+877d9a0-1-3-g1c103e5af+\" -Werror -DEAPOL_TEST -DCONFIG_HT_OVERRIDES -DCONFIG_VHT_OVERRIDES -DCONFIG_BACKEND_FILE -DCONFIG_IEEE80211R -DCONFIG_SAE -DCONFIG_DPP -DCONFIG_OWE -DCONFIG_TDLS -DCONFIG_PMKSA_CACHE_EXTERNAL -DCONFIG_IBSS_RSN -DCONFIG_NO_VLAN -DCONFIG_P2P -DCONFIG_WIFI_DISPLAY -DCONFIG_HS20 -DCONFIG_INTERWORKING  -DCONFIG_DRIVER_WIRED -DCONFIG_DRIVER_MACSEC_LINUX -DCONFIG_DRIVER_NL80211 -DCONFIG_DRIVER_NL80211_QCA -DCONFIG_DRIVER_NONE -I/usr/include/libnl3 -DCONFIG_LIBNL3_ROUTE  -DCONFIG_DRIVER_WEXT -DCONFIG_WIRELESS_EXTENSION  -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_GTC -DEAP_OTP -DEAP_SIM -DEAP_LEAP -DEAP_PSK -DEAP_AKA -DEAP_AKA_PRIME -DEAP_FAST -DEAP_PAX -DEAP_SAKE -DEAP_GPSK -DEAP_GPSK_SHA256 -DEAP_PWD -DEAP_EKE -DCONFIG_WPS -DEAP_WSC -DCONFIG_WPS_NFC -DCONFIG_WPS_OOB -DCONFIG_WPS_ER -DCONFIG_WPS_UPNP -DCONFIG_WPS_REG_DISABLE_OPEN -DEAP_IKEV2 -DEAP_TNC -DCONFIG_MACSEC -DIEEE8021X_EAPOL -DCONFIG_AP -DCONFIG_NO_RADIUS -DCONFIG_NO_ACCOUNTING -DCONFIG_NO_VLAN -DEAP_SERVER -DEAP_SERVER_IDENTITY -DCONFIG_IEEE80211N -DCONFIG_IEEE80211AC -DNEED_AP_MLME -DEAP_SERVER_WSC -DCONFIG_NO_RADIUS -DCONFIG_ACS -DPCSC_FUNCS -I/usr/include/PCSC -DPKCS12_FUNCS -DCONFIG_SMARTCARD -DCONFIG_TLSV11 -DCONFIG_TLSV12 -DEAP_TLS_OPENSSL -DTLS_DEFAULT_CIPHERS=\""DEFAULT@SECLEVEL=1"\" -DCONFIG_DES -DCONFIG_SHA256 -DCONFIG_HMAC_SHA256_KDF -DCONFIG_HMAC_SHA384_KDF -DCONFIG_HMAC_SHA512_KDF -DCONFIG_SHA384 -DCONFIG_SHA512 -DALL_DH_GROUPS -DCONFIG_ECC -DCONFIG_GETRANDOM -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_CTRL_IFACE_DBUS_NEW -DCONFIG_CTRL_IFACE_DBUS_INTRO -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -DCONFIG_SME -DCONFIG_DEBUG_SYSLOG -DLOG_HOSTAPD="LOG_DAEMON" -DCONFIG_DEBUG_LINUX_TRACING -DCONFIG_DEBUG_FILE -DCONFIG_DELAYED_MIC_ERROR_REPORT -DCONFIG_BGSCAN_SIMPLE -DCONFIG_BGSCAN_LEARN -DCONFIG_BGSCAN -DCONFIG_AUTOSCAN_EXPONENTIAL -DCONFIG_AUTOSCAN_PERIODIC -DCONFIG_AUTOSCAN -DCONFIG_GAS_SERVER -DCONFIG_GAS -DCONFIG_OFFCHANNEL -DCONFIG_JSON -DCONFIG_FST eapol_test.c
eapol_test.c: In function ‘main’:
eapol_test.c:1393:11: error: unknown conversion type character ‘+’ in format [-Werror=format=]
 1393 |    printf("eapol_test v" VERSION_STR "\n");
      |           ^~~~~~~~~~~~~~
cc1: all warnings being treated as errors

It might be because in the Debian package's development case, VERSION_STR
ends up being "v2.10-devel-debian/2%2.9+git20200213+877d9a0-1-3-g3bd59207c+".

> > Fix printf calls for eapol_test build
> > 
> > Origin: vendor
> > Author: Didier Raboud <[email protected]>
> > Last-Update: 2020-02-15
> 
> Could you please read the top level CONTRIBUTIONS file (*) and provide a
> Signed-off-by: line for the commit message so that I can apply this?
> 
> (*) http://w1.fi/cgit/hostap/plain/CONTRIBUTIONS

Oh sure, thanks for the pointer. New patch (this time based off the git
repository) attached.

> > --- a/wpa_supplicant/wpa_supplicant.c
> > +++ b/wpa_supplicant/wpa_supplicant.c
> > -	wpa_printf(MSG_DEBUG, "wpa_supplicant v" VERSION_STR);
> > +	wpa_printf(MSG_DEBUG, "wpa_supplicant v%s", VERSION_STR);
> 
> This looks strange.. VERSION_STR is a define for a string.. Has gcc
> really stopped allowing string constants from being concatenated in this
> manner? Sounds like an excessive approach for avoiding printf format
> issues..

I'm by far not a C nor GCC specialist, sorry. I can just observe that
under my compilation conditions, eapol_test cannot be built without a
patch along the lines of my patch proposal.

Regards,
    OdyX

_______________________________________________
Hostap mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/hostap
0001-Fix-printf-calls-in-eapol_test-build.patch (text/x-patch, 1.4 KB)
From cf780d0741ad59a74880dbfcd18524bef7bec601 Mon Sep 17 00:00:00 2001
From: Didier Raboud <[email protected]>
Date: Sun, 16 Feb 2020 16:14:54 +0100
Subject: [PATCH] Fix printf calls in eapol_test build

Signed-off-by: Didier Raboud <[email protected]>
---
 wpa_supplicant/eapol_test.c     | 2 +-
 wpa_supplicant/wpa_supplicant.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/wpa_supplicant/eapol_test.c b/wpa_supplicant/eapol_test.c
index 53d75853b..f59a2a1fb 100644
--- a/wpa_supplicant/eapol_test.c
+++ b/wpa_supplicant/eapol_test.c
@@ -1390,7 +1390,7 @@ int main(int argc, char *argv[])
 			eapol_test.ctrl_iface = 1;
 			break;
 		case 'v':
-			printf("eapol_test v" VERSION_STR "\n");
+			printf("eapol_test v%s\n",VERSION_STR);
 			return 0;
 		case 'W':
 			wait_for_monitor++;
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 24a7a28e2..0e46a6d87 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -6818,7 +6818,7 @@ struct wpa_global * wpa_supplicant_init(struct wpa_params *params)
 	wpa_debug_timestamp = global->params.wpa_debug_timestamp =
 		params->wpa_debug_timestamp;
 
-	wpa_printf(MSG_DEBUG, "wpa_supplicant v" VERSION_STR);
+	wpa_printf(MSG_DEBUG, "wpa_supplicant v%s", VERSION_STR);
 
 	if (eloop_init()) {
 		wpa_printf(MSG_ERROR, "Failed to initialize event loop");
-- 
2.25.0
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEJ3k7rA0YCplkx4gZqcb6xg1jAWkFAl5JXmAACgkQqcb6xg1j
AWmxJRAApUH8xH6QAQeeqnDupuax2mfFEdkmMtFSzPJ9j3RlRpzlXq1u0AWw1etZ
XSXlLYFKHJxJKfskVxGxgZNLeRobz38nVqnttq1D5X3IEK/5V8o3WrHvJw8zmMya
67xwLY79px9aWlVCTR6XaSI6Aka1SMoYBeIqMShj8L8r2Ja30q9YX8QPXKUViujs
eTS8olDvvHv1ERi9ui3DO5g15F107QKwtSCENukorXIdZX4gxIPf2qOUMlmSz9ec
xyLC9sTRi0mVpK5veqEl0PXLiwAY9l8UzO2UowwruwhiP5wgtPZNPF6FsLGFPfEg
xHTWJpdX2qz/8f9arxAjmJ6aT3W162+6GqY8SesssjjaMwpN9CDuruUTY82C33iG
20hG+fLsTyI3bfBPNDCUWkxcNMss3ggin/JA99GBZowqEat2eQS+9lmu5RXeRIgy
cu2XR2qZthV/8pj1Fj5x0e3XKTjkihXbQScOJZpahon+tAhz05dnIB85QnWJuAtt
L4uUlcbG6HHGyFZlauy7qXIR6THHFjlZRLZUN5iX6BzX6HL1XlE/Ebt1ePBw7O+X
NxznbtXNcPAqO8H3VC9lQxlLXipG6DicRoJ5lwrdoz3WaM2gyG0Ev/1yTM5SykHx
mgXgrlO/hoMlM6/YCzFw8oDRhiJpO90SMD2qPGgzRJn6SaKn4hs=
=7FLP
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.