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);
>  }

Reply via email to