On Thu, Oct 29, 2015 at 10:54:09AM +0000, Nicholas Marriott wrote:
> Hi
> 
> You missed ci.c:316 and a few in rcs.c and rcsdiff.c

Sorry. Here is new diff. Hopefully I haven't missed anything else.



Index: buf.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/buf.c,v
retrieving revision 1.25
diff -u -p -u -r1.25 buf.c
--- buf.c       13 Jun 2015 20:15:21 -0000      1.25
+++ buf.c       30 Oct 2015 01:11:28 -0000
@@ -138,6 +138,8 @@ out:
 void
 buf_free(BUF *b)
 {
+       if (b == NULL)
+               return;
        free(b->cb_buf);
        free(b);
 }
Index: ci.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/ci.c,v
retrieving revision 1.222
diff -u -p -u -r1.222 ci.c
--- ci.c        5 Sep 2015 09:38:23 -0000       1.222
+++ ci.c        30 Oct 2015 01:11:28 -0000
@@ -313,8 +313,7 @@ checkin_main(int argc, char **argv)
                }
 
                rcs_close(pb.file);
-               if (rev_str != NULL)
-                       rcsnum_free(pb.newrev);
+               rcsnum_free(pb.newrev);
                pb.newrev = NULL;
        }
 
@@ -369,12 +368,9 @@ checkin_diff_file(struct checkin_params 
 
        return (b3);
 out:
-       if (b1 != NULL)
-               buf_free(b1);
-       if (b2 != NULL)
-               buf_free(b2);
-       if (b3 != NULL)
-               buf_free(b3);
+       buf_free(b1);
+       buf_free(b2);
+       buf_free(b3);
        free(path1);
        free(path2);
 
Index: diff3.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/diff3.c,v
retrieving revision 1.37
diff -u -p -u -r1.37 diff3.c
--- diff3.c     5 Sep 2015 09:47:08 -0000       1.37
+++ diff3.c     30 Oct 2015 01:11:28 -0000
@@ -234,14 +234,10 @@ merge_diff3(char **av, int flags)
                warnx("warning: overlaps or other problems during merge");
 
 out:
-       if (b2 != NULL)
-               buf_free(b2);
-       if (b3 != NULL)
-               buf_free(b3);
-       if (d1 != NULL)
-               buf_free(d1);
-       if (d2 != NULL)
-               buf_free(d2);
+       buf_free(b2);
+       buf_free(b3);
+       buf_free(d1);
+       buf_free(d2);
 
        (void)unlink(path1);
        (void)unlink(path2);
@@ -354,14 +350,10 @@ rcs_diff3(RCSFILE *rf, char *workfile, R
                warnx("warning: overlaps or other problems during merge");
 
 out:
-       if (b2 != NULL)
-               buf_free(b2);
-       if (b3 != NULL)
-               buf_free(b3);
-       if (d1 != NULL)
-               buf_free(d1);
-       if (d2 != NULL)
-               buf_free(d2);
+       buf_free(b2);
+       buf_free(b3);
+       buf_free(d1);
+       buf_free(d2);
 
        (void)unlink(path1);
        (void)unlink(path2);
Index: ident.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/ident.c,v
retrieving revision 1.30
diff -u -p -u -r1.30 ident.c
--- ident.c     2 Oct 2014 06:23:15 -0000       1.30
+++ ident.c     30 Oct 2015 01:11:28 -0000
@@ -156,8 +156,7 @@ ident_line(FILE *fp)
 
        found++;
 out:
-       if (bp != NULL)
-               buf_free(bp);
+       buf_free(bp);
 }
 
 __dead void
Index: rcs.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/rcs.c,v
retrieving revision 1.83
diff -u -p -u -r1.83 rcs.c
--- rcs.c       13 Jun 2015 20:15:21 -0000      1.83
+++ rcs.c       30 Oct 2015 01:11:28 -0000
@@ -177,10 +177,8 @@ rcs_close(RCSFILE *rfp)
                free(rlp);
        }
 
-       if (rfp->rf_head != NULL)
-               rcsnum_free(rfp->rf_head);
-       if (rfp->rf_branch != NULL)
-               rcsnum_free(rfp->rf_branch);
+       rcsnum_free(rfp->rf_head);
+       rcsnum_free(rfp->rf_branch);
 
        if (rfp->rf_file != NULL)
                fclose(rfp->rf_file);
@@ -1406,10 +1404,8 @@ rcs_freedelta(struct rcs_delta *rdp)
 {
        struct rcs_branch *rb;
 
-       if (rdp->rd_num != NULL)
-               rcsnum_free(rdp->rd_num);
-       if (rdp->rd_next != NULL)
-               rcsnum_free(rdp->rd_next);
+       rcsnum_free(rdp->rd_num);
+       rcsnum_free(rdp->rd_next);
 
        free(rdp->rd_author);
        free(rdp->rd_locker);
Index: rcsclean.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/rcsclean.c,v
retrieving revision 1.54
diff -u -p -u -r1.54 rcsclean.c
--- rcsclean.c  16 Jan 2015 06:40:11 -0000      1.54
+++ rcsclean.c  30 Oct 2015 01:11:28 -0000
@@ -209,10 +209,8 @@ rcsclean_file(char *fname, const char *r
                rcs_set_mtime(file, rcs_mtime);
 
 out:
-       if (b1 != NULL)
-               buf_free(b1);
-       if (b2 != NULL)
-               buf_free(b2);
+       buf_free(b1);
+       buf_free(b2);
        if (file != NULL)
                rcs_close(file);
 }
Index: rcsdiff.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/rcsdiff.c,v
retrieving revision 1.83
diff -u -p -u -r1.83 rcsdiff.c
--- rcsdiff.c   13 Jun 2015 20:15:21 -0000      1.83
+++ rcsdiff.c   30 Oct 2015 01:11:28 -0000
@@ -250,15 +250,9 @@ rcsdiff_main(int argc, char **argv)
                        status = rcsdiff_rev(file, rev1, rev2, dflags);
 
                rcs_close(file);
-
-               if (rev1 != NULL) {
-                       rcsnum_free(rev1);
-                       rev1 = NULL;
-               }
-               if (rev2 != NULL) {
-                       rcsnum_free(rev2);
-                       rev2 = NULL;
-               }
+               rcsnum_free(rev1);
+               rcsnum_free(rev2);
+               rev1 = rev2 = NULL;
        }
 
        return (status);
@@ -354,10 +348,8 @@ rcsdiff_file(RCSFILE *file, RCSNUM *rev,
 out:
        if (fd != -1)
                (void)close(fd);
-       if (b1 != NULL)
-               buf_free(b1);
-       if (b2 != NULL)
-               buf_free(b2);
+       buf_free(b1);
+       buf_free(b2);
        free(path1);
        free(path2);
 
@@ -431,10 +423,8 @@ rcsdiff_rev(RCSFILE *file, RCSNUM *rev1,
        ret = diffreg(path1, path2, NULL, dflags);
 
 out:
-       if (b1 != NULL)
-               buf_free(b1);
-       if (b2 != NULL)
-               buf_free(b2);
+       buf_free(b1);
+       buf_free(b2);
        free(path1);
        free(path2);
 
Index: rcsmerge.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/rcsmerge.c,v
retrieving revision 1.55
diff -u -p -u -r1.55 rcsmerge.c
--- rcsmerge.c  16 Jan 2015 06:40:11 -0000      1.55
+++ rcsmerge.c  30 Oct 2015 01:11:28 -0000
@@ -173,12 +173,8 @@ rcsmerge_main(int argc, char **argv)
 
 out:
        rcs_close(file);
-
-       if (rev1 != NULL)
-               rcsnum_free(rev1);
-       if (rev2 != NULL)
-               rcsnum_free(rev2);
-
+       rcsnum_free(rev1);
+       rcsnum_free(rev2);
        return (status);
 }
 
Index: rcsnum.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/rcsnum.c,v
retrieving revision 1.17
diff -u -p -u -r1.17 rcsnum.c
--- rcsnum.c    13 Jun 2015 20:15:21 -0000      1.17
+++ rcsnum.c    30 Oct 2015 01:11:28 -0000
@@ -105,6 +105,8 @@ rcsnum_parse(const char *str)
 void
 rcsnum_free(RCSNUM *rn)
 {
+       if (rn == NULL)
+               return;
        free(rn->rn_id);
        free(rn);
 }

Reply via email to