[Buildroot] [git commit branch/2018.02.x] host-mkpasswd: fix crash on Fedora 28 build host

Peter Korsgaard peter at korsgaard.com
Thu May 3 21:24:43 UTC 2018


commit: https://git.buildroot.net/buildroot/commit/?id=36e19e3f6a5edb7b644e5269d2b07be3d44c5288
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2018.02.x

crypt() is an optional glibc feature. Some distros, like Fedora 28, are
phasing it out to be replaced with libxcrypt [1]. Unfortunately this
change is only ABI compatible, not source code compatible, i.e. the code
will compile with warnings about undefined crypt(), but the resulting
binary will crash.

Follow the guidance in the Fedora bug and include crypt.h when
_XOPEN_CRYPT is not defined.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1566464

Signed-off-by: Stefan Becker <chemobejk at gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
(cherry picked from commit 3c514c2dc5186c4357b2c0fc2e1c4b47e0f555c7)
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
 package/mkpasswd/mkpasswd.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/package/mkpasswd/mkpasswd.c b/package/mkpasswd/mkpasswd.c
index 5820f32501..fd16230468 100644
--- a/package/mkpasswd/mkpasswd.c
+++ b/package/mkpasswd/mkpasswd.c
@@ -44,6 +44,11 @@
 #include <sys/time.h>
 #endif
 
+/* glibc without crypt() */
+#ifndef _XOPEN_CRYPT
+#include <crypt.h>
+#endif
+
 /* Application-specific */
 #include "utils.h"
 


More information about the buildroot mailing list