On Fri, Jul 11, 2014 at 07:29:06PM +0200, Marc Espie wrote:
> I don't like that part. The logic is a bit wrong. Especially since 
> unlink(fname) is always called for fd != -1, so I feel there should be one
> single call.

Ok

Index: usr.bin/m4/eval.c
===================================================================
RCS file: /cvs/src/usr.bin/m4/eval.c,v
retrieving revision 1.72
diff -u -p -d -r1.72 eval.c
--- usr.bin/m4/eval.c   28 Apr 2014 12:34:11 -0000      1.72
+++ usr.bin/m4/eval.c   11 Jul 2014 18:09:31 -0000
@@ -817,11 +817,10 @@ dodiv(int n)
        if (outfile[n] == NULL) {
                char fname[] = _PATH_DIVNAME;
 
-               if ((fd = mkstemp(fname)) < 0 || 
-                       (outfile[n] = fdopen(fd, "w+")) == NULL)
-                               err(1, "%s: cannot divert", fname);
-               if (unlink(fname) == -1)
-                       err(1, "%s: cannot unlink", fname);
+               if ((fd = mkstemp(fname)) < 0 ||
+                   unlink(fname) == -1 ||
+                   (outfile[n] = fdopen(fd, "w+")) == NULL)
+                       err(1, "%s: cannot divert", fname);
        }
        active = outfile[n];
 }

Reply via email to