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