X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=utils%2Fmountd%2Fcache.c;h=ef460f75c144fc164f776a66f903963fdeb4898a;hb=180238a295c1a8127953c96f0b462688d0f57a09;hp=15100d499e91edb442130d0afc1123108ce88e5a;hpb=b8bee9413329bb56dd2dfff4879e4b03d2e0c787;p=nfs-utils.git diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index 15100d4..ef460f7 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -76,6 +76,7 @@ void auth_unix_ip(FILE *f) char ipaddr[20]; char *client; struct in_addr addr; + struct hostent *he; if (readline(fileno(f), &lbuf, &lbuflen) != 1) return; @@ -94,7 +95,8 @@ void auth_unix_ip(FILE *f) auth_reload(); /* addr is a valid, interesting address, find the domain name... */ - client = client_compose(addr); + he = client_resolve(addr); + client = client_compose(he); qword_print(f, "nfsd"); @@ -105,7 +107,7 @@ void auth_unix_ip(FILE *f) qword_eol(f); if (client) free(client); - + free(he); } void auth_unix_gid(FILE *f) @@ -445,6 +447,8 @@ void nfsd_fh(FILE *f) if (!found) { found = &exp->m_export; found_path = strdup(path); + if (found_path == NULL) + goto out; } else if (strcmp(found->e_path, exp->m_export.e_path)!= 0) { xlog(L_WARNING, "%s and %s have same filehandle for %s, using first", @@ -492,6 +496,7 @@ void nfsd_fh(FILE *f) qword_print(f, found->e_path); qword_eol(f); out: + free(found_path); free(dom); return; }