From df035a6a2cd078ba8fe1af1d9d41d0975a6c3cea Mon Sep 17 00:00:00 2001 From: sin Date: Tue, 4 Feb 2014 15:14:12 +0000 Subject: [PATCH] Break out fclose() --- uudecode.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/uudecode.c b/uudecode.c index 6102b1b..f4694aa 100644 --- a/uudecode.c +++ b/uudecode.c @@ -24,7 +24,7 @@ usage(void) int main(int argc, char *argv[]) { - FILE *fp, *nfp; + FILE *fp = NULL, *nfp = NULL; char *fname; mode_t mode = 0; @@ -43,7 +43,6 @@ main(int argc, char *argv[]) if ((nfp = parsefile(fname)) == NULL) eprintf("fopen %s:", fname); uudecode(stdin, nfp); - fclose(nfp); } else { if ((fp = fopen(argv[0], "r")) == NULL) eprintf("fopen %s:", argv[0]); @@ -51,11 +50,14 @@ main(int argc, char *argv[]) if ((nfp = parsefile(fname)) == NULL) eprintf("fopen %s:", fname); uudecode(fp, nfp); - fclose(nfp); - fclose(fp); } + if (chmod(fname, mode) < 0) eprintf("chmod %s:", fname); + if (fp) + fclose(fp); + if (nfp) + fclose(nfp); return EXIT_SUCCESS; }