Any other oks for this?
On Sun, Nov 01, 2015 at 08:58:27AM +0800, Michael W. Bombardieri wrote: > Thanks again for checking this. > Correcting ci.c ... > > On Fri, Oct 30, 2015 at 03:53:58PM +0000, Nicholas Marriott wrote: > > Sorry, the one I pointed out in ci.c is wrong: > > > > > rcs_close(pb.file); > > > - if (rev_str != NULL) > > > - rcsnum_free(pb.newrev); > > > + rcsnum_free(pb.newrev); > > > pb.newrev = NULL; > > > > pb.newrev can be changed by checkin_init or checkin_update, in which > > case it shouldn't be freed, so this check needs to stay the same. > > > > The rest is ok nicm > > > 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 1 Nov 2015 01:21:13 -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 1 Nov 2015 01:21:13 -0000 > @@ -369,12 +369,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 1 Nov 2015 01:21:14 -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 1 Nov 2015 01:21:14 -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 1 Nov 2015 01:21:14 -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 1 Nov 2015 01:21:14 -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 1 Nov 2015 01:21:14 -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 1 Nov 2015 01:21:14 -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 1 Nov 2015 01:21:14 -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); > }