]> git.decadent.org.uk Git - nfs-utils.git/commitdiff
rpc.mountd: fix memory leak and error handling in nfsd_fh
authorJeff Layton <jlayton@redhat.com>
Thu, 27 Sep 2007 10:53:43 +0000 (06:53 -0400)
committerNeil Brown <neilb@suse.de>
Fri, 28 Sep 2007 01:39:56 +0000 (11:39 +1000)
nfsd_fh() uses strdup for creating found_path and doesn't check the
return value. It also doesn't free this memory when the function
returns. Check the return value of strdup and return immediately
if it's NULL. Also, free found_path on exit.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Acked-by: Steve Dickson <steved@redhat.com>
Signed-off-by: Neil Brown <neilb@suse.de>
utils/mountd/cache.c

index 15100d499e91edb442130d0afc1123108ce88e5a..fedc0bfc62b1b3656359ce81cc240d66f680abd0 100644 (file)
@@ -445,6 +445,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 +494,7 @@ void nfsd_fh(FILE *f)
                qword_print(f, found->e_path);
        qword_eol(f);
  out:
+       free(found_path);
        free(dom);
        return;         
 }