]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - include/pwd.h
Further harden glibc malloc metadata against 1-byte overflows.
[thirdparty/glibc.git] / include / pwd.h
index 6baec570fc7d1957e0adc68907edd7b131d23044..3b0f72540c4614a9f86445746b83e203080a9385 100644 (file)
@@ -1,16 +1,57 @@
 #ifndef _PWD_H
 #include <pwd/pwd.h>
 
+#ifndef _ISOMAC
 /* Now define the internal interfaces.  */
 extern int __getpwent_r (struct passwd *__resultbuf, char *__buffer,
-                        size_t __buflen, struct passwd **__result) __THROW;
+                        size_t __buflen, struct passwd **__result)
+     attribute_hidden;
+extern int __old_getpwent_r (struct passwd *__resultbuf, char *__buffer,
+                            size_t __buflen, struct passwd **__result);
 extern int __getpwuid_r (__uid_t __uid, struct passwd *__resultbuf,
                         char *__buffer, size_t __buflen,
-                        struct passwd **__result) __THROW;
-extern int __getpwnam_r (__const char *__name, struct passwd *__resultbuf,
+                        struct passwd **__result);
+extern int __old_getpwuid_r (__uid_t __uid, struct passwd *__resultbuf,
+                            char *__buffer, size_t __buflen,
+                            struct passwd **__result);
+extern int __getpwnam_r (const char *__name, struct passwd *__resultbuf,
                         char *__buffer, size_t __buflen,
-                        struct passwd **__result) __THROW;
+                        struct passwd **__result);
+extern int __old_getpwnam_r (const char *__name, struct passwd *__resultbuf,
+                            char *__buffer, size_t __buflen,
+                            struct passwd **__result);
 extern int __fgetpwent_r (FILE * __stream, struct passwd *__resultbuf,
                          char *__buffer, size_t __buflen,
-                         struct passwd **__result) __THROW;
+                         struct passwd **__result);
+
+#include <nss.h>
+
+struct parser_data;
+extern int _nss_files_parse_pwent (char *line, struct passwd *result,
+                                  struct parser_data *data,
+                                  size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_pwent)
+
+#define DECLARE_NSS_PROTOTYPES(service)                                        \
+extern enum nss_status _nss_ ## service ## _setpwent (int);            \
+extern enum nss_status _nss_ ## service ## _endpwent (void);           \
+extern enum nss_status _nss_ ## service ## _getpwnam_r                 \
+                      (const char *name, struct passwd *pwd,           \
+                       char *buffer, size_t buflen, int *errnop);      \
+extern enum nss_status _nss_ ## service ## _getpwuid_r                 \
+                      (uid_t uid, struct passwd *pwd,                  \
+                       char *buffer, size_t buflen, int *errnop);      \
+extern enum nss_status _nss_ ## service ##_getpwent_r                  \
+                      (struct passwd *result, char *buffer,            \
+                       size_t buflen, int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+#endif
+
 #endif