Author: ngie
Date: Sun May 22 02:24:38 2016
New Revision: 300387
URL: https://svnweb.freebsd.org/changeset/base/300387

Log:
  getnetid(..): consistently fclose fd at the end of the function
  
  This mutes a false positive with cppcheck, but also helps eliminate future
  potential issues with this variable
  
  MFC after: 2 weeks
  Sponsored by: EMC / Isilon Storage Division

Modified:
  head/lib/libc/rpc/netnamer.c

Modified: head/lib/libc/rpc/netnamer.c
==============================================================================
--- head/lib/libc/rpc/netnamer.c        Sun May 22 02:02:18 2016        
(r300386)
+++ head/lib/libc/rpc/netnamer.c        Sun May 22 02:24:38 2016        
(r300387)
@@ -243,6 +243,9 @@ getnetid(char *key, char *ret)
        char           *lookup;
        int             len;
 #endif
+       int rv;
+
+       rv = 0;
 
        fd = fopen(NETIDFILE, "r");
        if (fd == NULL) {
@@ -253,13 +256,11 @@ getnetid(char *key, char *ret)
                return (0);
 #endif
        }
-       for (;;) {
-               if (fd == NULL)
-                       return (0);     /* getnetidyp brings us here */
+       while (fd != NULL) {
                res = fgets(buf, sizeof(buf), fd);
                if (res == NULL) {
-                       fclose(fd);
-                       return (0);
+                       rv = 0;
+                       goto done;
                }
                if (res[0] == '#')
                        continue;
@@ -282,9 +283,8 @@ getnetid(char *key, char *ret)
                        lookup[len] = 0;
                        strcpy(ret, lookup);
                        free(lookup);
-                       if (fd != NULL)
-                               fclose(fd);
-                       return (2);
+                       rv = 2;
+                       goto done;
 #else  /* YP */
 #ifdef DEBUG
                        fprintf(stderr,
@@ -310,10 +310,14 @@ getnetid(char *key, char *ret)
                        }
                        if (strcmp(mkey, key) == 0) {
                                strcpy(ret, mval);
-                               fclose(fd);
-                               return (1);
-
+                               rv = 1;
+                               goto done;
                        }
                }
        }
+
+done:
+       if (fd != NULL)
+               fclose(fd);
+       return (rv);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to