Message ID | 20190513115826.22475-1-omosnace@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [userspace] run_init: fix build when crypt() is not in unistd.h | expand |
On 5/13/19 7:58 AM, Ondrej Mosnacek wrote: > According to [1], crypt() support in POSIX is optional, so include > also <crypt.h> when _XOPEN_CRYPT is not defined or is defined to -1. > Without this I can't build run_init from source out-of-the-box on > Fedora 29. > > [1] http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES Thanks, applied. We generally don't see this because pam-devel is installed and thus USE_PAM gets enabled instead. > > Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com> > --- > policycoreutils/run_init/run_init.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/policycoreutils/run_init/run_init.c b/policycoreutils/run_init/run_init.c > index 4bc32b1c..a007ce49 100644 > --- a/policycoreutils/run_init/run_init.c > +++ b/policycoreutils/run_init/run_init.c > @@ -159,6 +159,14 @@ int authenticate_via_pam(const struct passwd *p_passwd_line) > #include <shadow.h> /* for shadow passwd functions */ > #include <string.h> /* for strlen(), memset() */ > > +/* > + * crypt() may not be defined in unistd.h; see: > + * http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES > + */ > +#if !defined(_XOPEN_CRYPT) || _XOPEN_CRYPT == -1 > +#include <crypt.h> > +#endif > + > #define PASSWORD_PROMPT _("Password:") /* prompt for getpass() */ > > int authenticate_via_shadow_passwd(const struct passwd *); >
diff --git a/policycoreutils/run_init/run_init.c b/policycoreutils/run_init/run_init.c index 4bc32b1c..a007ce49 100644 --- a/policycoreutils/run_init/run_init.c +++ b/policycoreutils/run_init/run_init.c @@ -159,6 +159,14 @@ int authenticate_via_pam(const struct passwd *p_passwd_line) #include <shadow.h> /* for shadow passwd functions */ #include <string.h> /* for strlen(), memset() */ +/* + * crypt() may not be defined in unistd.h; see: + * http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES + */ +#if !defined(_XOPEN_CRYPT) || _XOPEN_CRYPT == -1 +#include <crypt.h> +#endif + #define PASSWORD_PROMPT _("Password:") /* prompt for getpass() */ int authenticate_via_shadow_passwd(const struct passwd *);
According to [1], crypt() support in POSIX is optional, so include also <crypt.h> when _XOPEN_CRYPT is not defined or is defined to -1. Without this I can't build run_init from source out-of-the-box on Fedora 29. [1] http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com> --- policycoreutils/run_init/run_init.c | 8 ++++++++ 1 file changed, 8 insertions(+)