summaryrefslogtreecommitdiffstats
path: root/lib/nss_wrapper/nss_wrapper.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2014-10-09 09:14:57 +0200
committerAndreas Schneider <asn@cryptomilk.org>2014-10-09 12:24:03 +0200
commit94c87d134723a432d2d4e908d3c5d44b39fde1ae (patch)
tree91cf0d50fca33041af1e871f63227ba961c36c85 /lib/nss_wrapper/nss_wrapper.c
parent697908277951dc7fb9570e17f2662d8734aab986 (diff)
downloadsamba-94c87d134723a432d2d4e908d3c5d44b39fde1ae.tar.gz
samba-94c87d134723a432d2d4e908d3c5d44b39fde1ae.tar.xz
samba-94c87d134723a432d2d4e908d3c5d44b39fde1ae.zip
nwrap: Fix resolving hostnames with a trailing dot.
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'lib/nss_wrapper/nss_wrapper.c')
-rw-r--r--lib/nss_wrapper/nss_wrapper.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/nss_wrapper/nss_wrapper.c b/lib/nss_wrapper/nss_wrapper.c
index e3943ee61b..57003bd612 100644
--- a/lib/nss_wrapper/nss_wrapper.c
+++ b/lib/nss_wrapper/nss_wrapper.c
@@ -49,6 +49,7 @@
#include <string.h>
#include <unistd.h>
#include <ctype.h>
+#include <limits.h>
/*
* Defining _POSIX_PTHREAD_SEMANTICS before including pwd.h and grp.h gives us
@@ -2351,10 +2352,18 @@ static void nwrap_files_endgrent(struct nwrap_backend *b)
static struct hostent *nwrap_files_gethostbyname(const char *name, int af)
{
struct hostent *he;
+ char canon_name[HOST_NAME_MAX] = { 0 };
+ size_t name_len;
int i;
nwrap_files_cache_reload(nwrap_he_global.cache);
+ name_len = strlen(name);
+ if (name_len < sizeof(canon_name) && name[name_len - 1] == '.') {
+ strncpy(canon_name, name, name_len - 1);
+ name = canon_name;
+ }
+
for (i = 0; i < nwrap_he_global.num; i++) {
int j;