Hello,

this diff fixes a filedescriptor leak in vi.
I compiled the code but I could not test the code path.

bye,
Jan

Index: recover.c
===================================================================
RCS file: /mount/cvsdev/cvs/openbsd/src/usr.bin/vi/common/recover.c,v
retrieving revision 1.15
diff -u -w -p -r1.15 recover.c
--- recover.c   27 Oct 2009 23:59:47 -0000      1.15
+++ recover.c   20 Jan 2012 10:44:38 -0000
@@ -790,10 +790,13 @@ rcv_copy(sp, wfd, fname)
                for (off = 0; nr; nr -= nw, off += nw)
                        if ((nw = write(wfd, buf + off, nr)) < 0)
                                goto err;
+       close(rfd);
        if (nr == 0)
                return (0);

 err:   msgq_str(sp, M_SYSERR, fname, "%s");
+       if (rfd != -1)
+               close(rfd);
        return (1);
 }

Reply via email to