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
This commit is contained in:
Enji Cooper 2016-05-22 02:24:38 +00:00
parent 3552a02626
commit 99d498608a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=300387

View File

@ -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);
}