From b9d93e718746b3904f3d93632fa17677a73cdf97 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 18 Mar 2016 12:03:28 +0100 Subject: [PATCH] lib: Update nss_wrapper to version 1.1.3 Signed-off-by: Andreas Schneider Reviewed-by: Jeremy Allison --- lib/nss_wrapper/nss_wrapper.c | 34 ++++++++++++++++++++++++++++++++-- lib/nss_wrapper/wscript | 2 +- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/lib/nss_wrapper/nss_wrapper.c b/lib/nss_wrapper/nss_wrapper.c index c4f1b33e496..82581b17aaf 100644 --- a/lib/nss_wrapper/nss_wrapper.c +++ b/lib/nss_wrapper/nss_wrapper.c @@ -154,6 +154,14 @@ typedef nss_status_t NSS_STATUS; #define SAFE_FREE(x) do { if ((x) != NULL) {free(x); (x)=NULL;} } while(0) #endif +#ifndef discard_const +#define discard_const(ptr) ((void *)((uintptr_t)(ptr))) +#endif + +#ifndef discard_const_p +#define discard_const_p(type, ptr) ((type *)discard_const(ptr)) +#endif + #ifdef HAVE_IPV6 #define NWRAP_INET_ADDRSTRLEN INET6_ADDRSTRLEN #else @@ -1963,6 +1971,28 @@ static bool nwrap_pw_parse_line(struct nwrap_cache *nwrap, char *line) NWRAP_LOG(NWRAP_LOG_TRACE, "gid[%u]\n", pw->pw_gid); +#ifdef HAVE_STRUCT_PASSWD_PW_CLASS + pw->pw_class = discard_const_p(char, ""); + + NWRAP_LOG(NWRAP_LOG_TRACE, "class[%s]", pw->pw_class); +#endif /* HAVE_STRUCT_PASSWD_PW_CLASS */ + +#ifdef HAVE_STRUCT_PASSWD_PW_CHANGE + pw->pw_change = 0; + + NWRAP_LOG(NWRAP_LOG_TRACE, + "change[%lu]", + (unsigned long)pw->pw_change); +#endif /* HAVE_STRUCT_PASSWD_PW_CHANGE */ + +#ifdef HAVE_STRUCT_PASSWD_PW_EXPIRE + pw->pw_expire = 0; + + NWRAP_LOG(NWRAP_LOG_TRACE, + "expire[%lu]", + (unsigned long)pw->pw_expire); +#endif /* HAVE_STRUCT_PASSWD_PW_EXPIRE */ + /* gecos */ p = strchr(c, ':'); if (!p) { @@ -5421,7 +5451,7 @@ static int nwrap_getnameinfo(const struct sockaddr *sa, socklen_t salen, if (he != NULL && he->h_name != NULL) { if (strlen(he->h_name) >= hostlen) return EAI_OVERFLOW; - strcpy(host, he->h_name); + snprintf(host, hostlen, "%s", he->h_name); if (flags & NI_NOFQDN) host[strcspn(host, ".")] = '\0'; } else { @@ -5439,7 +5469,7 @@ static int nwrap_getnameinfo(const struct sockaddr *sa, socklen_t salen, if (service != NULL) { if (strlen(service->s_name) >= servlen) return EAI_OVERFLOW; - strcpy(serv, service->s_name); + snprintf(serv, servlen, "%s", service->s_name); } else { if (snprintf(serv, servlen, "%u", port) >= (int) servlen) return EAI_OVERFLOW; diff --git a/lib/nss_wrapper/wscript b/lib/nss_wrapper/wscript index 6c3d7f7940c..32bdbbd6447 100644 --- a/lib/nss_wrapper/wscript +++ b/lib/nss_wrapper/wscript @@ -2,7 +2,7 @@ import os -VERSION="1.1.2" +VERSION="1.1.3" def configure(conf): if conf.CHECK_BUNDLED_SYSTEM('nss_wrapper', minversion=VERSION, set_target=False): -- 2.34.1