catcrypt.c: Don't close output file twice.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 22 Jan 2012 13:12:14 +0000 (13:12 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 22 Jan 2012 13:12:14 +0000 (13:12 +0000)
The C library doesn't like it.  Who knew?

catcrypt.c

index 6e4f245..d10739d 100644 (file)
@@ -530,19 +530,18 @@ static int decrypt(int argc, char *argv[])
     if (ferror(rfp) || fclose(rfp))
       die(EXIT_FAILURE, "error unbuffering output: %s", strerror(errno));
   }
-  if (ofp && (fflush(ofp) || ferror(ofp) || fclose(ofp)))
-      die(EXIT_FAILURE, "error writing output: %s", strerror(errno));
 
   e->ops->decdone(e);
   if (verb && ofp != stdout)
     printf("OK decrypted successfully\n");
+  if (ofp && (fflush(ofp) || ferror(ofp) || fclose(ofp)))
+      die(EXIT_FAILURE, "error writing output: %s", strerror(errno));
   freeenc(e);
   GC_DESTROY(c);
   GC_DESTROY(cx);
   GM_DESTROY(m);
   freekem(km);
   if (fp != stdin) fclose(fp);
-  if (of) fclose(ofp);
   key_close(&kf);
   dstr_destroy(&d);
   return (0);