On Sat, Aug 02, 2014 at 10:35:43PM +0200, Fritjof Bornebusch wrote:
Ping?
> On Fri, Aug 01, 2014 at 08:03:58AM -0400, Ted Unangst wrote:
> > Half true. :)
> > 
> > The behavior is intended. I don't really know why they care about
> > freeing null, but the intention is clearly to check for it; otherwise
> > they would just call free() in the first place. (actually, i think the
> > rationale is that to assure portability, you need a strict version of
> > free that matches the broken version found elsewhere or you will
> > accidentally do something not portable. under that assumption, and
> > assuming we don't care about those platforms, the correct fix is to
> > delete xfree entirely.)
> > 
> > The X option, though, to malloc.conf doesn't check NULL to free. It
> > just makes malloc abort instead of returning null. I don't think it's
> > a useful option either way. Don't use it.
> 
> Based on Teds suggestion, this diff deletes xfree() entirely.
> 
> fritjof
> 
> Index: xmalloc.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/xmalloc.h,v
> retrieving revision 1.1
> diff -u -p -r1.1 xmalloc.h
> --- xmalloc.h 26 Apr 2006 02:55:13 -0000      1.1
> +++ xmalloc.h 2 Aug 2014 20:09:55 -0000
> @@ -22,7 +22,6 @@
>  void *xmalloc(size_t);
>  void *xcalloc(size_t, size_t);
>  void *xrealloc(void *, size_t, size_t);
> -void     xfree(void *);
>  char *xstrdup(const char *);
>  int   xasprintf(char **, const char *, ...)
>                  __attribute__((__format__ (printf, 2, 3)))
> Index: xmalloc.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/xmalloc.c,v
> retrieving revision 1.4
> diff -u -p -r1.4 xmalloc.c
> --- xmalloc.c 7 Jun 2009 08:39:13 -0000       1.4
> +++ xmalloc.c 2 Aug 2014 20:10:08 -0000
> @@ -73,14 +73,6 @@ xrealloc(void *ptr, size_t nmemb, size_t
>       return new_ptr;
>  }
>  
> -void
> -xfree(void *ptr)
> -{
> -     if (ptr == NULL)
> -             errx(1, "xfree: NULL pointer given as argument");
> -     free(ptr);
> -}
> -
>  char *
>  xstrdup(const char *str)
>  {
> Index: ci.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/ci.c,v
> retrieving revision 1.217
> diff -u -p -r1.217 ci.c
> --- ci.c      19 May 2014 19:42:24 -0000      1.217
> +++ ci.c      2 Aug 2014 20:12:30 -0000
> @@ -208,8 +208,7 @@ checkin_main(int argc, char **argv)
>                       printf("%s\n", rcs_version);
>                       exit(0);
>               case 'w':
> -                     if (pb.author != NULL)
> -                             xfree(pb.author);
> +                     free(pb.author);
>                       pb.author = xstrdup(rcs_optarg);
>                       break;
>               case 'x':
> @@ -376,10 +375,9 @@ out:
>               buf_free(b2);
>       if (b3 != NULL)
>               buf_free(b3);
> -     if (path1 != NULL)
> -             xfree(path1);
> -     if (path2 != NULL)
> -             xfree(path2);
> +             
> +     free(path1);
> +     free(path2);
>  
>       return (NULL);
>  }
> @@ -511,7 +509,7 @@ checkin_update(struct checkin_params *pb
>                       fprintf(stderr,
>                           "reuse log message of previous file? [yn](y): ");
>                       if (rcs_yesno('y') != 'y') {
> -                             xfree(pb->rcs_msg);
> +                             free(pb->rcs_msg);
>                               pb->rcs_msg = NULL;
>                       }
>               }
> @@ -584,7 +582,7 @@ checkin_update(struct checkin_params *pb
>                   pb->username, pb->author, NULL, NULL);
>  
>       if ((pb->flags & INTERACTIVE) && (pb->rcs_msg[0] == '\0')) {
> -             xfree(pb->rcs_msg);     /* free empty log message */
> +             free(pb->rcs_msg);      /* free empty log message */
>               pb->rcs_msg = NULL;
>       }
>  
> @@ -988,25 +986,22 @@ checkin_parsekeyword(char *keystring, RC
>               (void)xasprintf(&datestring, "%s %s", tokens[3], tokens[4]);
>               if ((*date = date_parse(datestring)) == -1)
>                       errx(1, "could not parse date");
> -             xfree(datestring);
> +             free(datestring);
>  
>               if (i < 6)
>                       break;
> -             if (*author != NULL)
> -                     xfree(*author);
> +             free(*author);
>               *author = xstrdup(tokens[5]);
>  
>               if (i < 7)
>                       break;
> -             if (*state != NULL)
> -                     xfree(*state);
> +             free(*state);
>               *state = xstrdup(tokens[6]);
>               break;
>       case KW_TYPE_AUTHOR:
>               if (i < 2)
>                       break;
> -             if (*author != NULL)
> -                     xfree(*author);
> +             free(*author);
>               *author = xstrdup(tokens[1]);
>               break;
>       case KW_TYPE_DATE:
> @@ -1015,13 +1010,12 @@ checkin_parsekeyword(char *keystring, RC
>               (void)xasprintf(&datestring, "%s %s", tokens[1], tokens[2]);
>               if ((*date = date_parse(datestring)) == -1)
>                       errx(1, "could not parse date");
> -             xfree(datestring);
> +             free(datestring);
>               break;
>       case KW_TYPE_STATE:
>               if (i < 2)
>                       break;
> -             if (*state != NULL)
> -                     xfree(*state);
> +             free(*state);
>               *state = xstrdup(tokens[1]);
>               break;
>       case KW_TYPE_REVISION:
> Index: co.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/co.c,v
> retrieving revision 1.117
> diff -u -p -r1.117 co.c
> --- co.c      16 Apr 2013 20:24:45 -0000      1.117
> +++ co.c      2 Aug 2014 20:14:42 -0000
> @@ -556,7 +556,7 @@ checkout_file_has_diffs(RCSFILE *rfp, RC
>  
>       buf_free(bp);
>       unlink(tempfile);
> -     xfree(tempfile);
> +     free(tempfile);
>  
>       return (ret);
>  }
> Index: date.y
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/date.y,v
> retrieving revision 1.12
> diff -u -p -r1.12 date.y
> --- date.y    3 Dec 2013 00:21:49 -0000       1.12
> +++ date.y    2 Aug 2014 20:16:14 -0000
> @@ -494,7 +494,7 @@ yyerror(const char *s)
>                   s, yyInput);
>  
>       warnx("%s", str);
> -     xfree(str);
> +     free(str);
>       return (0);
>  }
>  
> Index: diff.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/diff.c,v
> retrieving revision 1.34
> diff -u -p -r1.34 diff.c
> --- diff.c    16 May 2013 12:44:48 -0000      1.34
> +++ diff.c    2 Aug 2014 20:16:43 -0000
> @@ -72,6 +72,7 @@
>  #include <stdarg.h>
>  #include <stddef.h>
>  #include <stdio.h>
> +#include <stdlib.h>
>  #include <string.h>
>  #include <unistd.h>
>  
> @@ -370,13 +371,13 @@ diffreg(const char *file1, const char *f
>       clistlen = 100;
>       clist = xcalloc(clistlen, sizeof(*clist));
>       i = stone(class, slen[0], member, klist, flags);
> -     xfree(member);
> -     xfree(class);
> +     free(member);
> +     free(class);
>  
>       J = xrealloc(J, len[0] + 2, sizeof(*J));
>       unravel(klist[i]);
> -     xfree(clist);
> -     xfree(klist);
> +     free(clist);
> +     free(klist);
>  
>       ixold = xrealloc(ixold, len[0] + 2, sizeof(*ixold));
>       ixnew = xrealloc(ixnew, len[1] + 2, sizeof(*ixnew));
> @@ -765,7 +766,7 @@ unsort(struct line *f, int l, int *b)
>               a[f[i].serial] = f[i].value;
>       for (i = 1; i <= l; i++)
>               b[i] = a[i];
> -     xfree(a);
> +     free(a);
>  }
>  
>  static int
> @@ -856,7 +857,7 @@ ignoreline(char *line)
>       int ret;
>  
>       ret = regexec(diff_ignore_re, line, 0, NULL, 0);
> -     xfree(line);
> +     free(line);
>       return (ret == 0);      /* if it matched, it should be ignored. */
>  }
>  
> @@ -1379,5 +1380,5 @@ diff_output(const char *fmt, ...)
>               buf_append(diffbuf, str, strlen(str));
>       else
>               printf("%s", str);
> -     xfree(str);
> +     free(str);
>  }
> Index: diff3.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/diff3.c,v
> retrieving revision 1.33
> diff -u -p -r1.33 diff3.c
> --- diff3.c   4 Mar 2012 04:05:15 -0000       1.33
> +++ diff3.c   2 Aug 2014 20:16:52 -0000
> @@ -249,20 +249,13 @@ out:
>       (void)unlink(dp13);
>       (void)unlink(dp23);
>  
> -     if (path1 != NULL)
> -             xfree(path1);
> -     if (path2 != NULL)
> -             xfree(path2);
> -     if (path3 != NULL)
> -             xfree(path3);
> -     if (dp13 != NULL)
> -             xfree(dp13);
> -     if (dp23 != NULL)
> -             xfree(dp23);
> -     if (data != NULL)
> -             xfree(data);
> -     if (patch != NULL)
> -             xfree(patch);
> +     free(path1);
> +     free(path2);
> +     free(path3);
> +     free(dp13);
> +     free(dp23);
> +     free(data);
> +     free(patch);
>  
>       return (diffb);
>  }
> @@ -376,20 +369,13 @@ out:
>       (void)unlink(dp13);
>       (void)unlink(dp23);
>  
> -     if (path1 != NULL)
> -             xfree(path1);
> -     if (path2 != NULL)
> -             xfree(path2);
> -     if (path3 != NULL)
> -             xfree(path3);
> -     if (dp13 != NULL)
> -             xfree(dp13);
> -     if (dp23 != NULL)
> -             xfree(dp23);
> -     if (data != NULL)
> -             xfree(data);
> -     if (patch != NULL)
> -             xfree(patch);
> +     free(path1);
> +     free(path2);
> +     free(path3);
> +     free(dp13);
> +     free(dp23);
> +     free(data);
> +     free(patch);
>  
>       return (diffb);
>  }
> Index: rcs.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcs.c,v
> retrieving revision 1.80
> diff -u -p -r1.80 rcs.c
> --- rcs.c     7 Jan 2014 14:08:16 -0000       1.80
> +++ rcs.c     2 Aug 2014 20:18:29 -0000
> @@ -154,24 +154,24 @@ rcs_close(RCSFILE *rfp)
>       while (!TAILQ_EMPTY(&(rfp->rf_access))) {
>               rap = TAILQ_FIRST(&(rfp->rf_access));
>               TAILQ_REMOVE(&(rfp->rf_access), rap, ra_list);
> -             xfree(rap->ra_name);
> -             xfree(rap);
> +             free(rap->ra_name);
> +             free(rap);
>       }
>  
>       while (!TAILQ_EMPTY(&(rfp->rf_symbols))) {
>               rsp = TAILQ_FIRST(&(rfp->rf_symbols));
>               TAILQ_REMOVE(&(rfp->rf_symbols), rsp, rs_list);
>               rcsnum_free(rsp->rs_num);
> -             xfree(rsp->rs_name);
> -             xfree(rsp);
> +             free(rsp->rs_name);
> +             free(rsp);
>       }
>  
>       while (!TAILQ_EMPTY(&(rfp->rf_locks))) {
>               rlp = TAILQ_FIRST(&(rfp->rf_locks));
>               TAILQ_REMOVE(&(rfp->rf_locks), rlp, rl_list);
>               rcsnum_free(rlp->rl_num);
> -             xfree(rlp->rl_name);
> -             xfree(rlp);
> +             free(rlp->rl_name);
> +             free(rlp);
>       }
>  
>       if (rfp->rf_head != NULL)
> @@ -181,17 +181,15 @@ rcs_close(RCSFILE *rfp)
>  
>       if (rfp->rf_file != NULL)
>               fclose(rfp->rf_file);
> -     if (rfp->rf_path != NULL)
> -             xfree(rfp->rf_path);
> -     if (rfp->rf_comment != NULL)
> -             xfree(rfp->rf_comment);
> -     if (rfp->rf_expand != NULL)
> -             xfree(rfp->rf_expand);
> -     if (rfp->rf_desc != NULL)
> -             xfree(rfp->rf_desc);
> +     
> +     free(rfp->rf_path);
> +     free(rfp->rf_comment);
> +     free(rfp->rf_expand);
> +     free(rfp->rf_desc);
> +     
>       if (rfp->rf_pdata != NULL)
>               rcsparse_free(rfp);
> -     xfree(rfp);
> +     free(rfp);
>  }
>  
>  /*
> @@ -347,8 +345,7 @@ rcs_write(RCSFILE *rfp)
>  
>       rfp->rf_flags |= RCS_SYNCED;
>  
> -     if (fn != NULL)
> -             xfree(fn);
> +     free(fn);
>  }
>  
>  /*
> @@ -418,7 +415,7 @@ rcs_movefile(char *from, char *to, mode_
>  out:
>       (void)fclose(src);
>       (void)fclose(dst);
> -     xfree(buf);
> +     free(buf);
>  
>       return (0);
>  }
> @@ -507,8 +504,8 @@ rcs_access_remove(RCSFILE *file, const c
>       }
>  
>       TAILQ_REMOVE(&(file->rf_access), ap, ra_list);
> -     xfree(ap->ra_name);
> -     xfree(ap);
> +     free(ap->ra_name);
> +     free(ap);
>  
>       /* not synced anymore */
>       file->rf_flags &= ~RCS_SYNCED;
> @@ -580,9 +577,9 @@ rcs_sym_remove(RCSFILE *file, const char
>       }
>  
>       TAILQ_REMOVE(&(file->rf_symbols), symp, rs_list);
> -     xfree(symp->rs_name);
> +     free(symp->rs_name);
>       rcsnum_free(symp->rs_num);
> -     xfree(symp);
> +     free(symp);
>  
>       /* not synced anymore */
>       file->rf_flags &= ~RCS_SYNCED;
> @@ -741,8 +738,8 @@ rcs_lock_remove(RCSFILE *file, const cha
>  
>       TAILQ_REMOVE(&(file->rf_locks), lkp, rl_list);
>       rcsnum_free(lkp->rl_num);
> -     xfree(lkp->rl_name);
> -     xfree(lkp);
> +     free(lkp->rl_name);
> +     free(lkp);
>  
>       /* not synced anymore */
>       file->rf_flags &= ~RCS_SYNCED;
> @@ -760,8 +757,7 @@ rcs_desc_set(RCSFILE *file, const char *
>       char *tmp;
>  
>       tmp = xstrdup(desc);
> -     if (file->rf_desc != NULL)
> -             xfree(file->rf_desc);
> +     free(file->rf_desc);
>       file->rf_desc = tmp;
>       file->rf_flags &= ~RCS_SYNCED;
>  }
> @@ -777,8 +773,7 @@ rcs_comment_set(RCSFILE *file, const cha
>       char *tmp;
>  
>       tmp = xstrdup(comment);
> -     if (file->rf_comment != NULL)
> -             xfree(file->rf_comment);
> +     free(file->rf_comment);
>       file->rf_comment = tmp;
>       file->rf_flags &= ~RCS_SYNCED;
>  }
> @@ -837,7 +832,7 @@ rcs_patch_lines(struct rcs_lines *dlines
>                       for (i = 0; (i < nbln) && (dlp != NULL); i++) {
>                               ndlp = TAILQ_NEXT(dlp, l_list);
>                               TAILQ_REMOVE(&(dlines->l_lines), dlp, l_list);
> -                             xfree(dlp);
> +                             free(dlp);
>                               dlp = ndlp;
>                               /* last line is gone - reset dlp */
>                               if (dlp == NULL) {
> @@ -1018,7 +1013,7 @@ rcs_getrev(RCSFILE *rfp, RCSNUM *frev)
>                               return (NULL);
>  
>               rbuf = rcs_patchfile(data, dlen, patch, plen, rcs_patch_lines);
> -             xfree(data);
> +             free(data);
>  
>               if (rbuf == NULL)
>                       break;
> @@ -1244,10 +1239,8 @@ rcs_rev_remove(RCSFILE *rf, RCSNUM *rev)
>  
>       rcs_freedelta(rdp);
>  
> -     if (path_tmp1 != NULL)
> -             xfree(path_tmp1);
> -     if (path_tmp2 != NULL)
> -             xfree(path_tmp2);
> +     free(path_tmp1);
> +     free(path_tmp2);
>  
>       return (0);
>  }
> @@ -1341,8 +1334,7 @@ rcs_kwexp_set(RCSFILE *file, int mode)
>       }
>  
>       tmp = xstrdup(buf);
> -     if (file->rf_expand != NULL)
> -             xfree(file->rf_expand);
> +     free(file->rf_expand);
>       file->rf_expand = tmp;
>       /* not synced anymore */
>       file->rf_flags &= ~RCS_SYNCED;
> @@ -1417,24 +1409,19 @@ rcs_freedelta(struct rcs_delta *rdp)
>       if (rdp->rd_next != NULL)
>               rcsnum_free(rdp->rd_next);
>  
> -     if (rdp->rd_author != NULL)
> -             xfree(rdp->rd_author);
> -     if (rdp->rd_locker != NULL)
> -             xfree(rdp->rd_locker);
> -     if (rdp->rd_state != NULL)
> -             xfree(rdp->rd_state);
> -     if (rdp->rd_log != NULL)
> -             xfree(rdp->rd_log);
> -     if (rdp->rd_text != NULL)
> -             xfree(rdp->rd_text);
> +     free(rdp->rd_author);
> +     free(rdp->rd_locker);
> +     free(rdp->rd_state);
> +     free(rdp->rd_log);
> +     free(rdp->rd_text);
>  
>       while ((rb = TAILQ_FIRST(&(rdp->rd_branches))) != NULL) {
>               TAILQ_REMOVE(&(rdp->rd_branches), rb, rb_list);
>               rcsnum_free(rb->rb_num);
> -             xfree(rb);
> +             free(rb);
>       }
>  
> -     xfree(rdp);
> +     free(rdp);
>  }
>  
>  /*
> @@ -1699,8 +1686,7 @@ rcs_deltatext_set(RCSFILE *rfp, RCSNUM *
>       if ((rdp = rcs_findrev(rfp, rev)) == NULL)
>               return (-1);
>  
> -     if (rdp->rd_text != NULL)
> -             xfree(rdp->rd_text);
> +     free(rdp->rd_text);
>  
>       len = buf_len(bp);
>       dtext = buf_release(bp);
> @@ -1715,8 +1701,7 @@ rcs_deltatext_set(RCSFILE *rfp, RCSNUM *
>               rdp->rd_tlen = 0;
>       }
>  
> -     if (dtext != NULL)
> -             xfree(dtext);
> +     free(dtext);
>  
>       return (0);
>  }
> @@ -1734,8 +1719,7 @@ rcs_rev_setlog(RCSFILE *rfp, RCSNUM *rev
>       if ((rdp = rcs_findrev(rfp, rev)) == NULL)
>               return (-1);
>  
> -     if (rdp->rd_log != NULL)
> -             xfree(rdp->rd_log);
> +     free(rdp->rd_log);
>  
>       rdp->rd_log = xstrdup(logtext);
>       rfp->rf_flags &= ~RCS_SYNCED;
> @@ -1774,8 +1758,7 @@ rcs_state_set(RCSFILE *rfp, RCSNUM *rev,
>       if ((rdp = rcs_findrev(rfp, rev)) == NULL)
>               return (-1);
>  
> -     if (rdp->rd_state != NULL)
> -             xfree(rdp->rd_state);
> +     free(rdp->rd_state);
>  
>       rdp->rd_state = xstrdup(state);
>  
> Index: rcsdiff.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsdiff.c,v
> retrieving revision 1.79
> diff -u -p -r1.79 rcsdiff.c
> --- rcsdiff.c 16 Apr 2013 20:24:45 -0000      1.79
> +++ rcsdiff.c 2 Aug 2014 20:19:29 -0000
> @@ -359,10 +359,9 @@ out:
>               buf_free(b1);
>       if (b2 != NULL)
>               buf_free(b2);
> -     if (path1 != NULL)
> -             xfree(path1);
> -     if (path2 != NULL)
> -             xfree(path2);
> +     
> +     free(path1);
> +     free(path2);
>  
>       return (ret);
>  }
> @@ -438,10 +437,9 @@ out:
>               buf_free(b1);
>       if (b2 != NULL)
>               buf_free(b2);
> -     if (path1 != NULL)
> -             xfree(path1);
> -     if (path2 != NULL)
> -             xfree(path2);
> +             
> +     free(path1);
> +     free(path2);
>  
>       return (ret);
>  }
> Index: rcsnum.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsnum.c,v
> retrieving revision 1.14
> diff -u -p -r1.14 rcsnum.c
> --- rcsnum.c  7 Jan 2014 14:08:16 -0000       1.14
> +++ rcsnum.c  2 Aug 2014 20:20:03 -0000
> @@ -28,6 +28,7 @@
>  
>  #include <ctype.h>
>  #include <err.h>
> +#include <stdlib.h>
>  #include <string.h>
>  
>  #include "rcs.h"
> @@ -103,9 +104,8 @@ rcsnum_parse(const char *str)
>  void
>  rcsnum_free(RCSNUM *rn)
>  {
> -     if (rn->rn_id != NULL)
> -             xfree(rn->rn_id);
> -     xfree(rn);
> +     free(rn->rn_id);
> +     free(rn);
>  }
>  
>  /*
> @@ -330,7 +330,7 @@ rcsnum_aton(const char *str, char **ep, 
>  
>  rcsnum_aton_failed:
>       nump->rn_len = 0;
> -     xfree(nump->rn_id);
> +     free(nump->rn_id);
>       nump->rn_id = NULL;
>       return (-1);
>  }
> Index: rcsparse.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsparse.c,v
> retrieving revision 1.9
> diff -u -p -r1.9 rcsparse.c
> --- rcsparse.c        3 Jun 2013 17:04:35 -0000       1.9
> +++ rcsparse.c        2 Aug 2014 20:20:13 -0000
> @@ -340,11 +340,10 @@ rcsparse_free(RCSFILE *rfp)
>  
>       pdp = rfp->rf_pdata;
>  
> -     if (pdp->rp_buf != NULL)
> -             xfree(pdp->rp_buf);
> +     free(pdp->rp_buf);
>       if (pdp->rp_token == RCS_TYPE_REVISION)
>               rcsnum_free(pdp->rp_value.rev);
> -     xfree(pdp);
> +     free(pdp);
>  }
>  
>  /*
> @@ -609,7 +608,7 @@ rcsparse_text(RCSFILE *rfp, struct rcs_p
>               memcpy(pdp->rp_delta->rd_text, pdp->rp_buf,
>                   pdp->rp_delta->rd_tlen);
>       }
> -     xfree(pdp->rp_value.str);
> +     free(pdp->rp_value.str);
>  
>       return (0);
>  }
> @@ -707,7 +706,7 @@ rcsparse_symbols(RCSFILE *rfp, struct rc
>               name = pdp->rp_value.str;
>               if (rcsparse_token(rfp, RCS_TOK_COLON) != RCS_TOK_COLON ||
>                   rcsparse_token(rfp, RCS_TYPE_NUMBER) != RCS_TYPE_NUMBER) {
> -                     xfree(name);
> +                     free(name);
>                       return (1);
>               }
>               symp = xmalloc(sizeof(*symp));
> @@ -741,7 +740,7 @@ rcsparse_locks(RCSFILE *rfp, struct rcs_
>               if (rcsparse_token(rfp, RCS_TOK_COLON) != RCS_TOK_COLON ||
>                   rcsparse_token(rfp, RCS_TYPE_REVISION) !=
>                   RCS_TYPE_REVISION) {
> -                     xfree(name);
> +                     free(name);
>                       return (1);
>               }
>               lkp = xmalloc(sizeof(*lkp));
> Index: rcsprog.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsprog.c,v
> retrieving revision 1.151
> diff -u -p -r1.151 rcsprog.c
> --- rcsprog.c 12 Jul 2011 21:00:32 -0000      1.151
> +++ rcsprog.c 2 Aug 2014 20:21:03 -0000
> @@ -239,8 +239,7 @@ rcs_main(int argc, char **argv)
>                       rcsflags |= RCSPROG_LFLAG;
>                       break;
>               case 'm':
> -                     if (logstr != NULL)
> -                             xfree(logstr);
> +                     free(logstr);
>                       logstr = xstrdup(rcs_optarg);
>                       break;
>               case 'M':
> @@ -415,8 +414,8 @@ rcs_main(int argc, char **argv)
>                       while (!TAILQ_EMPTY(&(file->rf_access))) {
>                               rap = TAILQ_FIRST(&(file->rf_access));
>                               TAILQ_REMOVE(&(file->rf_access), rap, ra_list);
> -                             xfree(rap->ra_name);
> -                             xfree(rap);
> +                             free(rap->ra_name);
> +                             free(rap);
>                       }
>                       /* not synced anymore */
>                       file->rf_flags &= ~RCS_SYNCED;
> Index: rcsutil.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsutil.c,v
> retrieving revision 1.40
> diff -u -p -r1.40 rcsutil.c
> --- rcsutil.c 29 May 2014 16:39:42 -0000      1.40
> +++ rcsutil.c 2 Aug 2014 20:21:40 -0000
> @@ -34,6 +34,7 @@
>  #include <err.h>
>  #include <fcntl.h>
>  #include <stdio.h>
> +#include <stdlib.h>
>  #include <string.h>
>  #include <unistd.h>
>  
> @@ -230,7 +231,7 @@ rcs_choosefile(const char *filename, cha
>                               if (strlcpy(out, rcspath, len) >= len)
>                                       errx(1, "rcs_choosefile; truncation");
>  
> -                             xfree(suffixes);
> +                             free(suffixes);
>                               return (fd);
>                       }
>  
> @@ -255,7 +256,7 @@ rcs_choosefile(const char *filename, cha
>               if (strlcpy(out, fpath, len) >= len)
>                       errx(1, "rcs_choosefile: truncation");
>  
> -             xfree(suffixes);
> +             free(suffixes);
>               return (fd);
>       }
>  
> @@ -266,7 +267,7 @@ rcs_choosefile(const char *filename, cha
>       if (strlcat(rcspath, suffixes, sizeof(rcspath)) >= sizeof(rcspath))
>               errx(1, "rcs_choosefile: truncation");
>  
> -     xfree(suffixes);
> +     free(suffixes);
>  
>       if (strlcpy(out, rcspath, len) >= len)
>               errx(1, "rcs_choosefile: truncation");
> @@ -425,10 +426,8 @@ rcs_rev_select(RCSFILE *file, const char
>       }
>       rcs_argv_destroy(revargv);
>  
> -     if (lnum.rn_id != NULL)
> -             xfree(lnum.rn_id);
> -     if (rnum.rn_id != NULL)
> -             xfree(rnum.rn_id);
> +     free(lnum.rn_id);
> +     free(rnum.rn_id);
>  
>       return (nrev);
>  }
> @@ -464,7 +463,7 @@ rcs_set_description(RCSFILE *file, const
>               content = rcs_prompt(prompt);
>  
>       rcs_desc_set(file, content);
> -     xfree(content);
> +     free(content);
>       return (0);
>  }
>  
> @@ -510,10 +509,10 @@ rcs_freelines(struct rcs_lines *lines)
>  
>       while ((lp = TAILQ_FIRST(&(lines->l_lines))) != NULL) {
>               TAILQ_REMOVE(&(lines->l_lines), lp, l_list);
> -             xfree(lp);
> +             free(lp);
>       }
>  
> -     xfree(lines);
> +     free(lines);
>  }
>  
>  BUF *
> @@ -610,9 +609,9 @@ rcs_strsplit(const char *str, const char
>  void
>  rcs_argv_destroy(struct rcs_argvector *av)
>  {
> -     xfree(av->str);
> -     xfree(av->argv);
> -     xfree(av);
> +     free(av->str);
> +     free(av->argv);
> +     free(av);
>  }
>  
>  /*
> @@ -631,6 +630,6 @@ rcs_strip_suffix(char *filename)
>                               break;
>                       }
>               }
> -             xfree(suffixes);
> +             free(suffixes);
>       }
>  }
> Index: worklist.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/worklist.c,v
> retrieving revision 1.3
> diff -u -p -r1.3 worklist.c
> --- worklist.c        23 Jul 2010 08:31:19 -0000      1.3
> +++ worklist.c        2 Aug 2014 20:22:36 -0000
> @@ -28,6 +28,7 @@
>  
>  #include <err.h>
>  #include <signal.h>
> +#include <stdlib.h>
>  #include <string.h>
>  #include <unistd.h>
>  
> @@ -73,7 +74,7 @@ worklist_run(struct wklhead *list, void 
>  
>       while ((wkl = SLIST_FIRST(list)) != NULL) {
>               SLIST_REMOVE_HEAD(list, wkl_list);
> -             xfree(wkl);
> +             free(wkl);
>       }
>  
>       sigprocmask(SIG_SETMASK, &old, NULL);
> Index: buf.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/buf.c,v
> retrieving revision 1.22
> diff -u -p -r1.22 buf.c
> --- buf.c     6 Jul 2011 15:36:52 -0000       1.22
> +++ buf.c     2 Aug 2014 20:29:23 -0000
> @@ -31,6 +31,7 @@
>  #include <errno.h>
>  #include <fcntl.h>
>  #include <stdio.h>
> +#include <stdlib.h>
>  #include <string.h>
>  #include <unistd.h>
>  
> @@ -136,15 +137,14 @@ out:
>  void
>  buf_free(BUF *b)
>  {
> -     if (b->cb_buf != NULL)
> -             xfree(b->cb_buf);
> -     xfree(b);
> +     free(b->cb_buf);
> +     free(b);
>  }
>  
>  /*
>   * Free the buffer <b>'s structural information but do not free the contents
>   * of the buffer.  Instead, they are returned and should be freed later using
> - * xfree().
> + * free().
>   */
>  void *
>  buf_release(BUF *b)
> @@ -152,7 +152,7 @@ buf_release(BUF *b)
>       void *tmp;
>  
>       tmp = b->cb_buf;
> -     xfree(b);
> +     free(b);
>       return (tmp);
>  }
>  
> 

Reply via email to