diff options
author | nalin <nalin> | 2003-11-04 19:34:52 +0000 |
---|---|---|
committer | nalin <nalin> | 2003-11-04 19:34:52 +0000 |
commit | c7097ed9b80cb6d5b3119b5afd0f8ae9d387a26a (patch) | |
tree | 0c923ae2fa4f200d0d3a856dabb5b0e40fe8aae3 | |
parent | c55ab9f731f5089d9aea36748faa19c188c0d243 (diff) | |
download | nss_directories-c7097ed9b80cb6d5b3119b5afd0f8ae9d387a26a.tar.gz nss_directories-c7097ed9b80cb6d5b3119b5afd0f8ae9d387a26a.tar.xz nss_directories-c7097ed9b80cb6d5b3119b5afd0f8ae9d387a26a.zip |
- zero out pointers after freeing them so that we don't go trying to free
them later when an overzealous app calls endXXent() just in case
-rw-r--r-- | src/generic.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/generic.c b/src/generic.c index 13df056..7266402 100644 --- a/src/generic.c +++ b/src/generic.c @@ -16,7 +16,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#ident "$Id: generic.c,v 1.5 2003/10/23 01:44:42 nalin Exp $" +#ident "$Id: generic.c,v 1.6 2003/11/04 19:34:52 nalin Exp $" #include "../config.h" @@ -150,6 +150,7 @@ getgen(struct STRUCTURE *result, if ((fstat(fileno(fp), &st) != 0) || (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode))) { fclose(fp); + fp = NULL; continue; } @@ -161,7 +162,9 @@ getgen(struct STRUCTURE *result, fseek(fp, offset, SEEK_SET); free(line); fclose(fp); + fp = NULL; closedir(dir); + dir = NULL; errno = ERANGE; return NSS_STATUS_TRYAGAIN; } @@ -178,7 +181,9 @@ getgen(struct STRUCTURE *result, case -1: free(line); fclose(fp); + fp = NULL; closedir(dir); + dir = NULL; errno = ERANGE; return NSS_STATUS_TRYAGAIN; break; @@ -195,7 +200,9 @@ getgen(struct STRUCTURE *result, *result = structure; free(line); fclose(fp); + fp = NULL; closedir(dir); + dir = NULL; return NSS_STATUS_SUCCESS; } @@ -206,10 +213,12 @@ getgen(struct STRUCTURE *result, /* Close this file. */ fclose(fp); + fp = NULL; } /* Close this directory. */ closedir(dir); + dir = NULL; /* Tell the caller that we didn't find anything. */ return NSS_STATUS_NOTFOUND; |