]> granicus.if.org Git - sudo/commitdiff
Free up parser data structures in sudo_file_close().
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 5 Jan 2008 13:13:06 +0000 (13:13 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 5 Jan 2008 13:13:06 +0000 (13:13 +0000)
gram.c
parse.c

diff --git a/gram.c b/gram.c
index a35796011981d3d76c27ad1cae559df55fe4b625..83f0a9f4bb8fc5e6f50fbd6b5ff64a7eb129f58a 100644 (file)
--- a/gram.c
+++ b/gram.c
@@ -726,7 +726,7 @@ init_parser(path, quiet)
     init_aliases();
 
     efree(sudoers);
-    sudoers = estrdup(path);
+    sudoers = path ? estrdup(path) : NULL;
 
     parse_error = FALSE;
     errorlineno = -1;
diff --git a/parse.c b/parse.c
index fced5f3721a7aacec73c25f818316bf2cb67b62b..5d65e333b6af77d684dbc4e1801fa8870e37f9dd 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -96,7 +96,8 @@ int
 sudo_file_close(nss)
     struct sudo_nss *nss;
 {
-    /* XXX - free up data structures */
+    /* Free parser data structures and close sudoers file. */
+    init_parser(NULL, 0);
     if (nss->handle != NULL) {
        fclose(nss->handle);
        nss->handle = NULL;