summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/mountd/auth.c10
-rw-r--r--utils/mountd/mountd.c2
2 files changed, 9 insertions, 3 deletions
diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c
index afa2292..98c3944 100644
--- a/utils/mountd/auth.c
+++ b/utils/mountd/auth.c
@@ -16,6 +16,7 @@
#include "nfslib.h"
#include "exportfs.h"
#include "mountd.h"
+#include "xmalloc.h"
enum auth_error
{
@@ -83,9 +84,14 @@ auth_authenticate_internal(char *what, struct sockaddr_in *caller,
else {
/* must make sure the hostent is authorative. */
char **sp;
- struct hostent *forward;
+ struct hostent *forward = NULL;
+ char *tmpname;
- forward = gethostbyname((*hpp)->h_name);
+ tmpname = xstrdup((*hpp)->h_name);
+ if (tmpname) {
+ forward = gethostbyname(tmpname);
+ free(tmpname);
+ }
if (forward) {
/* now make sure the "addr" is in the list */
for (sp = forward->h_addr_list ; *sp ; sp++) {
diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c
index 9f467d1..164983a 100644
--- a/utils/mountd/mountd.c
+++ b/utils/mountd/mountd.c
@@ -312,7 +312,7 @@ get_exportlist(void)
e = (struct exportnode *) xmalloc(sizeof(*e));
e->ex_next = elist;
e->ex_groups = NULL;
- e->ex_dir = strdup(exp->m_export.m_path);
+ e->ex_dir = xstrdup(exp->m_export.m_path);
elist = e;
}