]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
configure: check whether fgetpwent_r is available before marking xprefix_getpwnam_r...
authorJaroslav Jindrak <dzejrou@gmail.com>
Thu, 4 May 2023 20:41:02 +0000 (22:41 +0200)
committerIker Pedrosa <ikerpedrosam@gmail.com>
Fri, 9 Jun 2023 14:22:24 +0000 (16:22 +0200)
configure.ac
lib/prototypes.h
libmisc/prefix_flag.c
libmisc/xprefix_getpwnam.c

index d75b99ff5634ca5351f8f4c028f1e610bc91ac57..4b40be7263a58ee303c86dca57ab06ed5cd9e698 100644 (file)
@@ -678,6 +678,8 @@ if test "$with_skey" = "yes"; then
        ]])],[AC_DEFINE(SKEY_BSD_STYLE, 1, [Define to support newer BSD S/Key API])],[])
 fi
 
+AC_CHECK_FUNC(fgetpwent_r, [AC_DEFINE(HAVE_FGETPWENT_R, 1, [Defined to 1 if you have the declaration of 'fgetpwent_r'])])
+
 AC_DEFINE_UNQUOTED(SHELL, ["$SHELL"], [The default shell.])
 
 AM_GNU_GETTEXT_VERSION([0.19])
index 747899b7d50aea48515d483338671f660a854e27..c9e7dce288a4b0325029a99cf70cacf3e196cc3e 100644 (file)
@@ -324,8 +324,10 @@ extern struct group *prefix_getgrnam(const char *name);
 extern struct group *prefix_getgrgid(gid_t gid);
 extern struct passwd *prefix_getpwuid(uid_t uid);
 extern struct passwd *prefix_getpwnam(const char* name);
+#if HAVE_FGETPWENT_R
 extern int prefix_getpwnam_r(const char* name, struct passwd* pwd,
                              char* buf, size_t buflen, struct passwd** result);
+#endif
 extern struct spwd *prefix_getspnam(const char* name);
 extern struct group *prefix_getgr_nam_gid(const char *grname);
 extern void prefix_setpwent(void);
index 60bc5207e438f2675ccecd6e9bfb4381bcbc8d7d..adab9974ccb023bae8fedc66541133985e32a666 100644 (file)
@@ -238,6 +238,7 @@ extern struct passwd *prefix_getpwnam(const char* name)
                return getpwnam(name);
        }
 }
+#if HAVE_FGETPWENT_R
 extern int prefix_getpwnam_r(const char* name, struct passwd* pwd,
                              char* buf, size_t buflen, struct passwd** result)
 {
@@ -259,6 +260,7 @@ extern int prefix_getpwnam_r(const char* name, struct passwd* pwd,
                return getpwnam_r(name, pwd, buf, buflen, result);
        }
 }
+#endif
 extern struct spwd *prefix_getspnam(const char* name)
 {
        if (spw_db_file) {
index 44466290f5d4a930e6e95455a8b36668f2a33402..cec01062b62eb58f9b4ac5b323b02537a73464ba 100644 (file)
@@ -35,7 +35,7 @@
 #define ARG_TYPE       const char *
 #define ARG_NAME       name
 #define DUP_FUNCTION   __pw_dup
-#define HAVE_FUNCTION_R 1
+#define HAVE_FUNCTION_R HAVE_FGETPWENT_R
 
 #include "xgetXXbyYY.c"