Hi tech@,

Function xfree() was previously removed from rcs, so drop it from
opencvs too...

http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/rcs/xmalloc.c?f=h#rev1.9

Footnote:
I noticed that rcsnum_free() is just free() so maybe that could be
removed also (not included in this patch).

- Michael


Index: add.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/add.c,v
retrieving revision 1.111
diff -u -p -u -r1.111 add.c
--- add.c       16 Jan 2015 06:40:06 -0000      1.111
+++ add.c       5 Nov 2015 02:49:20 -0000
@@ -20,6 +20,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -146,7 +147,7 @@ cvs_add_entry(struct cvs_file *cf)
                entlist = cvs_ent_open(cf->file_wd);
                cvs_ent_add(entlist, entry);
 
-               xfree(entry);
+               free(entry);
        } else {
                add_entry(cf);
        }
@@ -252,7 +253,7 @@ cvs_add_tobranch(struct cvs_file *cf, ch
        (void)xsnprintf(attic, PATH_MAX, "%s/%s/%s%s", repo,
            CVS_PATH_ATTIC, cf->file_name, RCS_FILE_EXT);
 
-       xfree(cf->file_rpath);
+       free(cf->file_rpath);
        cf->file_rpath = xstrdup(attic);
 
        cf->repo_fd = open(cf->file_rpath, O_CREAT|O_RDONLY);
@@ -277,7 +278,7 @@ cvs_add_tobranch(struct cvs_file *cf, ch
        if (rcs_rev_add(cf->file_rcs, RCS_HEAD_REV, msg, -1, NULL) == -1)
                fatal("cvs_add_tobranch: failed to create first branch "
                    "revision");
-       xfree(msg);
+       free(msg);
 
        if (rcs_findrev(cf->file_rcs, cf->file_rcs->rf_head) == NULL)
                fatal("cvs_add_tobranch: cannot find newly added revision");
@@ -359,7 +360,7 @@ add_directory(struct cvs_file *cf)
 
                        entlist = cvs_ent_open(cf->file_wd);
                        cvs_ent_add(entlist, p);
-                       xfree(p);
+                       free(p);
                }
        }
 
@@ -381,10 +382,8 @@ add_directory(struct cvs_file *cf)
                }
                cvs_printf("%s\n", msg);
 
-               if (tag != NULL)
-                       xfree(tag);
-               if (date != NULL)
-                       xfree(date);
+               free(tag);
+               free(date);
 
                cvs_get_repository_name(cf->file_path, repo, PATH_MAX);
                line_list = cvs_trigger_getlines(CVS_PATH_LOGINFO, repo);
@@ -400,8 +399,7 @@ add_directory(struct cvs_file *cf)
 
                        cvs_trigger_freeinfo(&files_info);
                        cvs_trigger_freelist(line_list);
-                       if (loginfo != NULL)
-                               xfree(loginfo);
+                       free(loginfo);
                }
        }
 
@@ -564,5 +562,5 @@ add_entry(struct cvs_file *cf)
                entlist = cvs_ent_open(cf->file_wd);
                cvs_ent_add(entlist, entry);
        }
-       xfree(entry);
+       free(entry);
 }
Index: admin.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/admin.c,v
retrieving revision 1.65
diff -u -p -u -r1.65 admin.c
--- admin.c     16 Jan 2015 06:40:06 -0000      1.65
+++ admin.c     5 Nov 2015 02:49:20 -0000
@@ -23,6 +23,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <libgen.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -304,8 +305,8 @@ cvs_admin_local(struct cvs_file *cf)
                while (!TAILQ_EMPTY(&(cf->file_rcs->rf_access))) {
                        rap = TAILQ_FIRST(&(cf->file_rcs->rf_access));
                        TAILQ_REMOVE(&(cf->file_rcs->rf_access), rap, ra_list);
-                       xfree(rap->ra_name);
-                       xfree(rap);
+                       free(rap->ra_name);
+                       free(rap);
                }
                /* no synced anymore */
                cf->file_rcs->rf_flags &= ~RCS_SYNCED;
Index: annotate.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/annotate.c,v
retrieving revision 1.64
diff -u -p -u -r1.64 annotate.c
--- annotate.c  16 Jan 2015 06:40:06 -0000      1.64
+++ annotate.c  5 Nov 2015 02:49:20 -0000
@@ -235,7 +235,7 @@ cvs_annotate_local(struct cvs_file *cf)
                        p[line->l_len] = '\0';
 
                        if (line->l_needsfree)
-                               xfree(line->l_line);
+                               free(line->l_line);
                        line->l_line = p;
                        line->l_len++;
                        line->l_needsfree = 1;
@@ -244,9 +244,9 @@ cvs_annotate_local(struct cvs_file *cf)
                    line->l_delta->rd_author, date, line->l_line);
 
                if (line->l_needsfree)
-                       xfree(line->l_line);
-               xfree(line);
+                       free(line->l_line);
+               free(line);
        }
 
-       xfree(alines);
+       free(alines);
 }
Index: buf.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/buf.c,v
retrieving revision 1.82
diff -u -p -u -r1.82 buf.c
--- buf.c       5 Feb 2015 12:59:57 -0000       1.82
+++ buf.c       5 Nov 2015 02:49:20 -0000
@@ -119,15 +119,15 @@ buf_load_fd(int fd)
 void
 buf_free(BUF *b)
 {
-       if (b->cb_buf != NULL)
-               xfree(b->cb_buf);
-       xfree(b);
+       if (b == NULL)
+               return;
+       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().
+ * of the buffer.  Instead, they are returned and should be freed later.
  */
 void *
 buf_release(BUF *b)
@@ -135,7 +135,7 @@ buf_release(BUF *b)
        void *tmp;
 
        tmp = b->cb_buf;
-       xfree(b);
+       free(b);
        return (tmp);
 }
 
Index: checkout.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/checkout.c,v
retrieving revision 1.169
diff -u -p -u -r1.169 checkout.c
--- checkout.c  16 Jan 2015 06:40:06 -0000      1.169
+++ checkout.c  5 Nov 2015 02:49:21 -0000
@@ -360,8 +360,7 @@ checkout_check_repository(int argc, char
                            mc->mc_flags & MODULE_RUN_ON_CHECKOUT)
                                cvs_exec(mc->mc_prog, NULL, 0);
 
-                       if (module_repo_root != NULL)
-                               xfree(module_repo_root);
+                       free(module_repo_root);
                }
 
                if (mc->mc_canfree == 1) {
@@ -371,17 +370,17 @@ checkout_check_repository(int argc, char
                                    &(mc->mc_modules), fl);
                                RB_REMOVE(cvs_flisthead,
                                    &(mc->mc_modules), fl);
-                               xfree(fl->file_path);
-                               xfree(fl);
+                               free(fl->file_path);
+                               free(fl);
                        }
                }
 
                while ((ip = TAILQ_FIRST(&checkout_ign_pats)) != NULL) {
                        TAILQ_REMOVE(&checkout_ign_pats, ip, ip_list);
-                       xfree(ip);
+                       free(ip);
                }
 
-               xfree(mc);
+               free(mc);
        }
 }
 
@@ -634,5 +633,5 @@ cvs_checkout_file(struct cvs_file *cf, R
                }
        }
 
-       xfree(entry);
+       free(entry);
 }
Index: client.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/client.c,v
retrieving revision 1.124
diff -u -p -u -r1.124 client.c
--- client.c    16 Jan 2015 06:40:06 -0000      1.124
+++ client.c    5 Nov 2015 02:49:21 -0000
@@ -190,7 +190,7 @@ client_check_directory(char *data, char 
        entlist = cvs_ent_open(parent);
        cvs_ent_add(entlist, entry);
 
-       xfree(entry);
+       free(entry);
 }
 
 void
@@ -273,7 +273,7 @@ cvs_client_connect_to_server(void)
 
        resp = client_get_supported_responses();
        cvs_client_send_request("Valid-responses %s", resp);
-       xfree(resp);
+       free(resp);
 
        cvs_client_send_request("valid-requests");
        cvs_client_get_responses();
@@ -339,7 +339,7 @@ cvs_client_send_request(char *fmt, ...)
        cvs_log(LP_TRACE, "%s", data);
 
        cvs_remote_output(data);
-       xfree(data);
+       free(data);
 }
 
 void
@@ -361,7 +361,7 @@ cvs_client_read_response(void)
 
        (*resp->hdlr)(data);
 
-       xfree(cmd);
+       free(cmd);
 }
 
 void
@@ -391,7 +391,7 @@ cvs_client_send_logmsg(char *msg)
                }
        }
 
-       xfree(buf);
+       free(buf);
 }
 
 void
@@ -439,16 +439,11 @@ cvs_client_senddir(const char *dir)
 
                cvs_client_send_request("Sticky %s", buf);
 
-               if (tag != NULL)
-                       xfree(tag);
-               if (date != NULL)
-                       xfree(date);
+               free(tag);
+               free(date);
        }
-       if (d != NULL)
-               xfree(d);
-
-       if (lastdir != NULL)
-               xfree(lastdir);
+       free(d);
+       free(lastdir);
        lastdir = xstrdup(dir);
 }
 
@@ -637,12 +632,12 @@ cvs_client_checkedin(char *data)
 
        dir = cvs_remote_input();
        e = cvs_remote_input();
-       xfree(dir);
+       free(dir);
 
        entlist = cvs_ent_open(data);
        newent = cvs_ent_parse(e);
        ent = cvs_ent_get(entlist, newent->ce_name);
-       xfree(e);
+       free(e);
 
        rcsnum_tostr(newent->ce_rev, rev, sizeof(rev));
 
@@ -685,7 +680,7 @@ cvs_client_checkedin(char *data)
        cvs_ent_free(newent);
        cvs_ent_add(entlist, entry);
 
-       xfree(entry);
+       free(entry);
 }
 
 void
@@ -730,10 +725,10 @@ cvs_client_updated(char *data)
        flen = strtonum(len, 0, INT_MAX, &errstr);
        if (errstr != NULL)
                fatal("cvs_client_updated: %s: %s", len, errstr);
-       xfree(len);
+       free(len);
 
        cvs_strtomode(mode, &fmode);
-       xfree(mode);
+       free(mode);
        fmode &= ~cvs_umask;
 
        time(&now);
@@ -742,7 +737,7 @@ cvs_client_updated(char *data)
        timebuf[strcspn(timebuf, "\n")] = '\0';
 
        e = cvs_ent_parse(en);
-       xfree(en);
+       free(en);
 
        sticky[0] = '\0';
        if (e->ce_tag != NULL) {
@@ -767,7 +762,7 @@ cvs_client_updated(char *data)
                cvs_ent_add(ent, entry);
        }
 
-       xfree(entry);
+       free(entry);
 
        (void)unlink(fpath);
        if ((fd = open(fpath, O_CREAT | O_WRONLY | O_TRUNC)) == -1)
@@ -788,7 +783,7 @@ cvs_client_updated(char *data)
 
        (void)close(fd);
 
-       xfree(rpath);
+       free(rpath);
 }
 
 void
@@ -826,15 +821,15 @@ cvs_client_merged(char *data)
        fpath = rpath + strlen(repo) + 1;
        if ((wdir = dirname(fpath)) == NULL)
                fatal("cvs_client_merged: dirname: %s", strerror(errno));
-       xfree(repo);
+       free(repo);
 
        flen = strtonum(len, 0, INT_MAX, &errstr);
        if (errstr != NULL)
                fatal("cvs_client_merged: %s: %s", len, errstr);
-       xfree(len);
+       free(len);
 
        cvs_strtomode(mode, &fmode);
-       xfree(mode);
+       free(mode);
        fmode &= ~cvs_umask;
 
        time(&now);
@@ -844,7 +839,7 @@ cvs_client_merged(char *data)
 
        ent = cvs_ent_open(wdir);
        cvs_ent_add(ent, entry);
-       xfree(entry);
+       free(entry);
 
        (void)unlink(fpath);
        if ((fd = open(fpath, O_CREAT | O_WRONLY | O_TRUNC)) == -1)
@@ -865,7 +860,7 @@ cvs_client_merged(char *data)
 
        (void)close(fd);
 
-       xfree(rpath);
+       free(rpath);
 }
 
 void
@@ -888,7 +883,7 @@ cvs_client_removed(char *data)
        (void)xsnprintf(fpath, PATH_MAX, "%s/%s", data, filename);
        (void)unlink(fpath);
 
-       xfree(rpath);
+       free(rpath);
 }
 
 void
@@ -908,7 +903,7 @@ cvs_client_remove_entry(char *data)
        entlist = cvs_ent_open(data);
        cvs_ent_remove(entlist, filename);
 
-       xfree(rpath);
+       free(rpath);
 }
 
 void
@@ -923,7 +918,7 @@ cvs_client_set_static_directory(char *da
        STRIP_SLASH(data);
 
        dir = cvs_remote_input();
-       xfree(dir);
+       free(dir);
 
        if (cvs_cmdop == CVS_OP_EXPORT)
                return;
@@ -949,7 +944,7 @@ cvs_client_clear_static_directory(char *
        STRIP_SLASH(data);
 
        dir = cvs_remote_input();
-       xfree(dir);
+       free(dir);
 
        if (cvs_cmdop == CVS_OP_EXPORT)
                return;
@@ -989,8 +984,8 @@ cvs_client_set_sticky(char *data)
        (void)fprintf(fp, "%s\n", tag);
        (void)fclose(fp);
 out:
-       xfree(tag);
-       xfree(dir);
+       free(tag);
+       free(dir);
 }
 
 void
@@ -1006,7 +1001,7 @@ cvs_client_clear_sticky(char *data)
        dir = cvs_remote_input();
 
        if (cvs_cmdop == CVS_OP_EXPORT) {
-               xfree(dir);
+               free(dir);
                return;
        }
 
@@ -1015,7 +1010,7 @@ cvs_client_clear_sticky(char *data)
        (void)xsnprintf(tagpath, PATH_MAX, "%s/%s", data, CVS_PATH_TAG);
        (void)unlink(tagpath);
 
-       xfree(dir);
+       free(dir);
 }
 
 
@@ -1054,7 +1049,7 @@ cvs_client_initlog(void)
        if (strlcpy(rpath, envdup, sizeof(rpath)) >= sizeof(rpath))
                fatal("cvs_client_initlog: truncation");
 
-       xfree(envdup);
+       free(envdup);
 
        s = buf;
        while ((s = strchr(s, '%')) != NULL) {
Index: commit.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/commit.c,v
retrieving revision 1.153
diff -u -p -u -r1.153 commit.c
--- commit.c    16 Jan 2015 06:40:07 -0000      1.153
+++ commit.c    5 Nov 2015 02:49:21 -0000
@@ -21,6 +21,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <libgen.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -77,8 +78,7 @@ cvs_commit(int argc, char **argv)
                switch (ch) {
                case 'F':
                        /* free previously assigned value */
-                       if (logmsg != NULL)
-                               xfree(logmsg);
+                       free(logmsg);
                        logmsg = cvs_logmsg_read(optarg);
                        Fflag = 1;
                        break;
@@ -89,8 +89,7 @@ cvs_commit(int argc, char **argv)
                        break;
                case 'm':
                        /* free previously assigned value */
-                       if (logmsg != NULL)
-                               xfree(logmsg);
+                       free(logmsg);
                        logmsg = xstrdup(optarg);
                        mflag = 1;
                        break;
@@ -210,7 +209,7 @@ cvs_commit(int argc, char **argv)
                        cvs_trigger_handle(CVS_TRIGGER_LOGINFO, repo,
                            loginfo, line_list, &files_info);
 
-                       xfree(loginfo);
+                       free(loginfo);
                        cvs_trigger_freelist(line_list);
                        cvs_trigger_freeinfo(&files_info);
                }
@@ -223,8 +222,7 @@ cvs_commit(int argc, char **argv)
 
 end:
        cvs_trigger_freeinfo(&files_info);
-       if (logmsg != NULL)
-               xfree(logmsg);
+       free(logmsg);
        return (0);
 }
 
@@ -568,7 +566,7 @@ cvs_commit_local(struct cvs_file *cf)
                                            "move %s outside the Attic: %s",
                                            cf->file_path, strerror(errno));
 
-                               xfree(cf->file_rpath);
+                               free(cf->file_rpath);
                                cf->file_rpath = xstrdup(rcsfile);
                                isnew = 0;
                        }
@@ -761,8 +759,8 @@ commit_diff(struct cvs_file *cf, RCSNUM 
        close(fd1);
        close(fd2);
 
-       xfree(p1);
-       xfree(p2);
+       free(p1);
+       free(p2);
 
        return (b);
 }
@@ -789,5 +787,5 @@ commit_desc_set(struct cvs_file *cf)
        (void)close(fd);
        (void)cvs_unlink(desc_path);
 
-       xfree(desc);
+       free(desc);
 }
Index: config.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/config.c,v
retrieving revision 1.16
diff -u -p -u -r1.16 config.c
--- config.c    16 Jan 2015 06:40:07 -0000      1.16
+++ config.c    5 Nov 2015 02:49:21 -0000
@@ -48,8 +48,7 @@ config_parse_line(char *line, int lineno
        *(val++) = '\0';
 
        if (!strcmp(opt, "tag")) {
-               if (cvs_tagname != NULL)
-                       xfree(cvs_tagname);
+               free(cvs_tagname);
                cvs_tagname = xstrdup(val);
        } else if (!strcmp(opt, "umask")) {
                cvs_umask = strtol(val, &ep, 8);
@@ -115,8 +114,6 @@ cvs_read_config(char *name, int (*cb)(ch
                        break;
        }
 
-       if (lbuf != NULL)
-               xfree(lbuf);
-
+       free(lbuf);
        (void)fclose(fp);
 }
Index: cvs.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/cvs.c,v
retrieving revision 1.155
diff -u -p -u -r1.155 cvs.c
--- cvs.c       16 Jan 2015 06:40:07 -0000      1.155
+++ cvs.c       5 Nov 2015 02:49:21 -0000
@@ -113,7 +113,7 @@ cvs_cleanup(void)
                        cvs_log(LP_ERR,
                            "warning: failed to remove server directory: %s",
                            cvs_server_path);
-               xfree(cvs_server_path);
+               free(cvs_server_path);
                cvs_server_path = NULL;
        }
 
@@ -257,7 +257,7 @@ main(int argc, char **argv)
 
                        cvs_getopt(i, targv);
                        cvs_freeargv(targv, i);
-                       xfree(targv);
+                       free(targv);
                }
        }
 
@@ -513,8 +513,7 @@ cvs_read_rcfile(void)
                        cmd_parsed = 1;
                }
        }
-       if (lbuf != NULL)
-               xfree(lbuf);
+       free(lbuf);
 
        if (ferror(fp)) {
                cvs_log(LP_NOTICE, "failed to read line from `%s'", rcpath);
@@ -561,7 +560,7 @@ cvs_var_set(const char *var, const char 
                TAILQ_INSERT_TAIL(&cvs_variables, vp, cv_link);
 
        } else  /* free the previous value */
-               xfree(vp->cv_val);
+               free(vp->cv_val);
 
        vp->cv_val = xstrdup(val);
 
@@ -582,9 +581,9 @@ cvs_var_unset(const char *var)
        TAILQ_FOREACH(vp, &cvs_variables, cv_link)
                if (strcmp(vp->cv_name, var) == 0) {
                        TAILQ_REMOVE(&cvs_variables, vp, cv_link);
-                       xfree(vp->cv_name);
-                       xfree(vp->cv_val);
-                       xfree(vp);
+                       free(vp->cv_name);
+                       free(vp->cv_val);
+                       free(vp);
                        return (0);
                }
 
Index: date.y
===================================================================
RCS file: /cvs/src/usr.bin/cvs/date.y,v
retrieving revision 1.24
diff -u -p -u -r1.24 date.y
--- date.y      3 Dec 2013 00:23:45 -0000       1.24
+++ date.y      5 Nov 2015 02:49:21 -0000
@@ -488,7 +488,7 @@ yyerror(const char *s)
 
        (void)xasprintf(&str, "parsing date string: %s", s);
        cvs_log(LP_ERR, "%s", str);
-       xfree(str);
+       free(str);
 #endif
        return (0);
 }
Index: diff.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/diff.c,v
retrieving revision 1.160
diff -u -p -u -r1.160 diff.c
--- diff.c      20 Apr 2011 18:33:13 -0000      1.160
+++ diff.c      5 Nov 2015 02:49:21 -0000
@@ -605,20 +605,18 @@ cvs_diff_local(struct cvs_file *cf)
 
        worklist_run(&temp_files, worklist_unlink);
 
-       if (p1 != NULL)
-               xfree(p1);
-       if (p2 != NULL)
-               xfree(p2);
+       free(p1);
+       free(p2);
 
 cleanup:
        if (diff_rev1 != NULL &&
            (cf->file_rcs == NULL || diff_rev1 != cf->file_rcs->rf_head) &&
            (cf->file_ent == NULL || diff_rev1 != cf->file_ent->ce_rev))
-               xfree(diff_rev1);
+               free(diff_rev1);
        diff_rev1 = NULL;
 
        if (diff_rev2 != NULL &&
            (cf->file_rcs == NULL || diff_rev2 != cf->file_rcs->rf_head))
-               xfree(diff_rev2);
+               free(diff_rev2);
        diff_rev2 = NULL;
 }
Index: diff3.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/diff3.c,v
retrieving revision 1.58
diff -u -p -u -r1.58 diff3.c
--- diff3.c     5 Sep 2015 09:47:08 -0000       1.58
+++ diff3.c     5 Nov 2015 02:49:21 -0000
@@ -257,20 +257,19 @@ cvs_merge_file(struct cvs_file *cf, int 
 
        cvs_freelines(dlines);
 
-       if (data != NULL)
-               xfree(data);
-       xfree(patch);
+       free(data);
+       free(patch);
 
        for (i = 0; i < 3; i++)
                fclose(fp[i]);
 
        worklist_run(&temp_files, worklist_unlink);
 
-       xfree(path1);
-       xfree(path2);
-       xfree(path3);
-       xfree(dp13);
-       xfree(dp23);
+       free(path1);
+       free(path2);
+       free(path3);
+       free(dp13);
+       free(dp23);
 }
 
 static int
@@ -291,17 +290,12 @@ diff3_internal(int argc, char **argv, co
        szchanges = 0;
        memset(last, 0, sizeof(last));
        memset(cline, 0, sizeof(cline));
-       if (d13 != NULL)
-               xfree(d13);
-       if (d23 != NULL)
-               xfree(d23);
-       if (overlap != NULL)
-               xfree(overlap);
-       if (de != NULL)
-               xfree(de);
+       free(d13);
+       free(d23);
+       free(overlap);
+       free(de);
 
-       overlap = NULL;
-       de = d13 = d23 = NULL;
+       de = d13 = d23 = overlap = NULL;
 
        increase();
 
Index: diff_internals.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/diff_internals.c,v
retrieving revision 1.37
diff -u -p -u -r1.37 diff_internals.c
--- diff_internals.c    5 Feb 2015 12:59:57 -0000       1.37
+++ diff_internals.c    5 Nov 2015 02:49:21 -0000
@@ -73,6 +73,7 @@
 #include <stddef.h>
 #include <stdint.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
@@ -392,13 +393,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 = xreallocarray(J, len[0] + 2, sizeof(*J));
        unravel(klist[i]);
-       xfree(clist);
-       xfree(klist);
+       free(clist);
+       free(klist);
 
        ixold = xreallocarray(ixold, len[0] + 2, sizeof(*ixold));
        ixnew = xreallocarray(ixnew, len[1] + 2, sizeof(*ixnew));
@@ -787,7 +788,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
@@ -878,7 +879,7 @@ ignoreline(char *line)
        int ret;
 
        ret = regexec(&ignore_re, line, 0, NULL, 0);
-       xfree(line);
+       free(line);
        return (ret == 0);      /* if it matched, it should be ignored. */
 }
 
@@ -1456,5 +1457,5 @@ diff_output(const char *fmt, ...)
                buf_puts(diffbuf, str);
        else
                cvs_printf("%s", str);
-       xfree(str);
+       free(str);
 }
Index: edit.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/edit.c,v
retrieving revision 1.50
diff -u -p -u -r1.50 edit.c
--- edit.c      16 Jan 2015 06:40:07 -0000      1.50
+++ edit.c      5 Nov 2015 02:49:21 -0000
@@ -18,6 +18,7 @@
 #include <sys/stat.h>
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
@@ -409,7 +410,7 @@ cvs_unedit_local(struct cvs_file *cf)
 
                cvs_ent_free(ent);
 
-               xfree(entry);
+               free(entry);
        }
 
        rcsnum_free(ba_rev);
Index: entries.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/entries.c,v
retrieving revision 1.105
diff -u -p -u -r1.105 entries.c
--- entries.c   20 Aug 2015 22:32:41 -0000      1.105
+++ entries.c   5 Nov 2015 02:49:21 -0000
@@ -16,6 +16,7 @@
  */
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
@@ -101,8 +102,8 @@ cvs_ent_open(const char *dir)
                                if (line != NULL) {
                                        TAILQ_REMOVE(&(ep->cef_ent), line,
                                            entries_list);
-                                       xfree(line->buf);
-                                       xfree(line);
+                                       free(line->buf);
+                                       free(line);
                                }
                                cvs_ent_free(ent);
                        }
@@ -276,8 +277,8 @@ cvs_ent_close(CVSENTRIES *ep, int writef
                }
 
                TAILQ_REMOVE(&(ep->cef_ent), l, entries_list);
-               xfree(l->buf);
-               xfree(l);
+               free(l->buf);
+               free(l);
        }
 
        if (fp != NULL) {
@@ -294,10 +295,10 @@ cvs_ent_close(CVSENTRIES *ep, int writef
                (void)unlink(ep->cef_lpath);
        }
 
-       xfree(ep->cef_path);
-       xfree(ep->cef_bpath);
-       xfree(ep->cef_lpath);
-       xfree(ep);
+       free(ep->cef_path);
+       free(ep->cef_bpath);
+       free(ep->cef_lpath);
+       free(ep);
 }
 
 void
@@ -358,8 +359,8 @@ cvs_ent_remove(CVSENTRIES *ep, const cha
        (void)fclose(fp);
 
        TAILQ_REMOVE(&(ep->cef_ent), l, entries_list);
-       xfree(l->buf);
-       xfree(l);
+       free(l->buf);
+       free(l);
 }
 
 /*
@@ -386,11 +387,9 @@ cvs_ent_free(struct cvs_ent *ent)
 {
        if (ent->ce_rev != NULL)
                rcsnum_free(ent->ce_rev);
-       if (ent->ce_time != NULL)
-               xfree(ent->ce_time);
-
-       xfree(ent->ce_buf);
-       xfree(ent);
+       free(ent->ce_time);
+       free(ent->ce_buf);
+       free(ent);
 }
 
 static struct cvs_ent_line *
Index: file.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/file.c,v
retrieving revision 1.266
diff -u -p -u -r1.266 file.c
--- file.c      20 Aug 2015 22:32:41 -0000      1.266
+++ file.c      5 Nov 2015 02:49:21 -0000
@@ -36,6 +36,7 @@
 #include <fnmatch.h>
 #include <libgen.h>
 #include <stdint.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -375,10 +376,8 @@ cvs_file_walklist(struct cvs_flisthead *
                        if (l->flags & FILE_USER_SUPPLIED) {
                                if (cmdp->cmd_flags & CVS_LOCK_REPO)
                                        cvs_repository_unlock(repo);
-                               if (cvs_directory_tag != NULL) {
-                                       xfree(cvs_directory_tag);
-                                       cvs_directory_tag = NULL;
-                               }
+                               free(cvs_directory_tag);
+                               cvs_directory_tag = NULL;
                        }
                }
 
@@ -562,11 +561,11 @@ cvs_file_walkdir(struct cvs_file *cf, st
                fatal("cvs_file_walkdir: %s %s", cf->file_path,
                    strerror(errno));
 
-       xfree(buf);
+       free(buf);
 
        while ((ip = TAILQ_FIRST(&dir_ign_pats)) != NULL) {
                TAILQ_REMOVE(&dir_ign_pats, ip, ip_list);
-               xfree(ip);
+               free(ip);
        }
 
        entlist = cvs_ent_open(cf->file_path);
@@ -613,7 +612,7 @@ walkrepo:
 
        if (cvs_directory_tag != NULL && cmdp->cmd_flags & CVS_USE_WDIR) {
                cvs_write_tagfile(cf->file_path, cvs_directory_tag, NULL);
-               xfree(cvs_directory_tag);
+               free(cvs_directory_tag);
                cvs_directory_tag = NULL;
        }
 
@@ -632,8 +631,8 @@ cvs_file_freelist(struct cvs_flisthead *
        for (f = RB_MIN(cvs_flisthead, fl); f != NULL; f = nxt) {
                nxt = RB_NEXT(cvs_flisthead, fl, f);
                RB_REMOVE(cvs_flisthead, fl, f);
-               xfree(f->file_path);
-               xfree(f);
+               free(f->file_path);
+               free(f);
        }
 }
 
@@ -754,7 +753,7 @@ cvs_file_classify(struct cvs_file *cf, c
 
                cf->repo_fd = open(rcsfile, O_RDONLY);
                if (cf->repo_fd != -1) {
-                       xfree(cf->file_rpath);
+                       free(cf->file_rpath);
                        cf->file_rpath = xstrdup(rcsfile);
                        cf->file_rcs = rcs_open(cf->file_rpath,
                            cf->repo_fd, rflags);
@@ -975,14 +974,13 @@ cvs_file_classify(struct cvs_file *cf, c
 void
 cvs_file_free(struct cvs_file *cf)
 {
-       xfree(cf->file_name);
-       xfree(cf->file_wd);
-       xfree(cf->file_path);
+       free(cf->file_name);
+       free(cf->file_wd);
+       free(cf->file_path);
 
        if (cf->file_rcsrev != NULL)
                rcsnum_free(cf->file_rcsrev);
-       if (cf->file_rpath != NULL)
-               xfree(cf->file_rpath);
+       free(cf->file_rpath);
        if (cf->file_ent != NULL)
                cvs_ent_free(cf->file_ent);
        if (cf->file_rcs != NULL)
@@ -991,7 +989,7 @@ cvs_file_free(struct cvs_file *cf)
                (void)close(cf->fd);
        if (cf->repo_fd != -1)
                (void)close(cf->repo_fd);
-       xfree(cf);
+       free(cf);
 }
 
 int
Index: history.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/history.c,v
retrieving revision 1.42
diff -u -p -u -r1.42 history.c
--- history.c   16 Jan 2015 06:40:07 -0000      1.42
+++ history.c   5 Nov 2015 02:49:21 -0000
@@ -181,9 +181,9 @@ cvs_history_add(int type, struct cvs_fil
        }
 
        if (rev != revbuf)
-               xfree(rev);
+               free(rev);
        if (cvs_server_active != 1)
-               xfree(cwd);
+               free(cwd);
 }
 
 static void
Index: import.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/import.c,v
retrieving revision 1.104
diff -u -p -u -r1.104 import.c
--- import.c    16 Jan 2015 06:40:07 -0000      1.104
+++ import.c    5 Nov 2015 02:49:21 -0000
@@ -19,6 +19,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -191,7 +192,7 @@ cvs_import(int argc, char **argv)
                cvs_trigger_freelist(line_list);
        }
 
-       xfree(loginfo);
+       free(loginfo);
        return (0);
 }
 
@@ -209,7 +210,7 @@ import_printf(const char *fmt, ...)
        cvs_printf("%s", str);
        buf_puts(logbuf, str);
 
-       xfree(str);
+       free(str);
 }
 
 void
@@ -482,8 +483,8 @@ import_get_rcsdiff(struct cvs_file *cf, 
        (void)unlink(p1);
        (void)unlink(p2);
 
-       xfree(p1);
-       xfree(p2);
+       free(p1);
+       free(p2);
 
        return (b2);
 }
Index: log.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/log.c,v
retrieving revision 1.46
diff -u -p -u -r1.46 log.c
--- log.c       27 Dec 2011 13:59:01 -0000      1.46
+++ log.c       5 Nov 2015 02:49:21 -0000
@@ -26,6 +26,7 @@
  */
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include "cvs.h"
@@ -162,7 +163,7 @@ cvs_printf(const char *fmt, ...)
                dp = sp + 1;
        }
 
-       xfree(nstr);
+       free(nstr);
        va_end(vap);
 
        return (ret);
Index: logmsg.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/logmsg.c,v
retrieving revision 1.56
diff -u -p -u -r1.56 logmsg.c
--- logmsg.c    5 Feb 2015 12:59:57 -0000       1.56
+++ logmsg.c    5 Nov 2015 02:49:21 -0000
@@ -83,8 +83,7 @@ cvs_logmsg_read(const char *path)
                buf_putc(bp, '\n');
        }
 
-       if (lbuf != NULL)
-               xfree(lbuf);
+       free(lbuf);
 
        (void)fclose(fp);
 
@@ -149,7 +148,7 @@ cvs_logmsg_create(char *dir, struct cvs_
                        logmsg = xmalloc(st.st_size);
                        fread(logmsg, st.st_size, 1, rp);
                        fwrite(logmsg, st.st_size, 1, fp);
-                       xfree(logmsg);
+                       free(logmsg);
                        (void)fclose(rp);
                }
                cvs_trigger_freelist(line_list);
@@ -215,8 +214,7 @@ cvs_logmsg_create(char *dir, struct cvs_
 
                if (st1.st_mtime != st2.st_mtime) {
                        logmsg = cvs_logmsg_read(fpath);
-                       if (prevmsg != NULL)
-                               xfree(prevmsg);
+                       free(prevmsg);
                        prevmsg = xstrdup(logmsg);
                        break;
                }
@@ -250,7 +248,7 @@ cvs_logmsg_create(char *dir, struct cvs_
 
        (void)fclose(fp);
        (void)unlink(fpath);
-       xfree(fpath);
+       free(fpath);
 
        return (logmsg);
 }
@@ -284,7 +282,7 @@ cvs_logmsg_edit(const char *pathname)
        while (waitpid(pid, &st, 0) == -1)
                if (errno != EINTR)
                        goto fail;
-       xfree(p);
+       free(p);
        (void)signal(SIGHUP, sighup);
        (void)signal(SIGINT, sigint);
        (void)signal(SIGQUIT, sigquit);
@@ -299,7 +297,7 @@ cvs_logmsg_edit(const char *pathname)
        (void)signal(SIGHUP, sighup);
        (void)signal(SIGINT, sigint);
        (void)signal(SIGQUIT, sigquit);
-       xfree(p);
+       free(p);
        errno = saved_errno;
        return (-1);
 }
@@ -334,7 +332,7 @@ cvs_logmsg_verify(char *logmsg)
                cvs_trigger_freeinfo(&files_info);
                (void)close(fd);
                (void)unlink(fpath);
-               xfree(fpath);
+               free(fpath);
                cvs_trigger_freelist(line_list);
        }
 
Index: modules.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/modules.c,v
retrieving revision 1.18
diff -u -p -u -r1.18 modules.c
--- modules.c   16 Jan 2015 06:40:07 -0000      1.18
+++ modules.c   5 Nov 2015 02:49:21 -0000
@@ -207,9 +207,8 @@ modules_parse_line(char *line, int linen
        return (0);
 
 bad:
-       if (prog != NULL)
-               xfree(prog);
-       xfree(bline);
+       free(prog);
+       free(bline);
        cvs_log(LP_NOTICE, "malformed line in CVSROOT/modules: %d", lineno);
        return (0);
 }
Index: rcs.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/rcs.c,v
retrieving revision 1.312
diff -u -p -u -r1.312 rcs.c
--- rcs.c       16 Jan 2015 06:40:07 -0000      1.312
+++ rcs.c       5 Nov 2015 02:49:21 -0000
@@ -236,24 +236,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)
@@ -263,17 +263,13 @@ 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);
 }
 
 /*
@@ -438,9 +434,7 @@ rcs_write(RCSFILE *rfp)
        }
 
        rfp->rf_flags |= RCS_SYNCED;
-
-       if (fn != NULL)
-               xfree(fn);
+       free(fn);
 }
 
 /*
@@ -623,8 +617,8 @@ rcs_access_remove(RCSFILE *file, const c
                return (-1);
 
        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;
@@ -687,9 +681,9 @@ rcs_sym_remove(RCSFILE *file, const char
                return (-1);
 
        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;
@@ -865,8 +859,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;
@@ -895,8 +889,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;
 }
@@ -945,8 +938,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;
 }
@@ -1011,7 +1003,7 @@ rcs_patch_lines(struct rcs_lines *dlines
                                        alines[dlp->l_lineno_orig - 1] =
                                                dlp;
                                } else
-                                       xfree(dlp);
+                                       free(dlp);
                                dlp = ndlp;
                                /* last line is gone - reset dlp */
                                if (dlp == NULL) {
@@ -1029,7 +1021,7 @@ rcs_patch_lines(struct rcs_lines *dlines
                                TAILQ_REMOVE(&(plines->l_lines), lp, l_list);
                                if (alines != NULL) {
                                        if (lp->l_needsfree == 1)
-                                               xfree(lp->l_line);
+                                               free(lp->l_line);
                                        lp->l_line = NULL;
                                        lp->l_needsfree = 0;
                                }
@@ -1137,8 +1129,7 @@ rcs_rev_add(RCSFILE *rf, RCSNUM *rev, co
                if (rf->rf_flags & RCS_CREATE) {
                        if ((rev = rcsnum_parse(RCS_HEAD_INIT)) == NULL)
                                return (-1);
-                       if (rf->rf_head != NULL)
-                               xfree(rf->rf_head);
+                       free(rf->rf_head);
                        rf->rf_head = rev;
                } else if (rf->rf_head == NULL) {
                        return (-1);
@@ -1312,14 +1303,9 @@ rcs_rev_remove(RCSFILE *rf, RCSNUM *rev)
        rf->rf_flags &= ~RCS_SYNCED;
 
        rcs_freedelta(rdp);
-
-       if (newdeltatext != NULL)
-               xfree(newdeltatext);
-
-       if (path_tmp1 != NULL)
-               xfree(path_tmp1);
-       if (path_tmp2 != NULL)
-               xfree(path_tmp2);
+       free(newdeltatext);
+       free(path_tmp1);
+       free(path_tmp2);
 
        return (0);
 }
@@ -1395,8 +1381,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;
@@ -1471,24 +1456,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);
 }
 
 /*
@@ -1540,8 +1520,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);
@@ -1556,9 +1535,7 @@ rcs_deltatext_set(RCSFILE *rfp, RCSNUM *
                rdp->rd_tlen = 0;
        }
 
-       if (dtext != NULL)
-               xfree(dtext);
-
+       free(dtext);
        return (0);
 }
 
@@ -1575,8 +1552,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;
@@ -1615,8 +1591,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);
 
@@ -1899,8 +1874,7 @@ next:
 
                if (brp == NULL) {
                        if (annotate != ANNOTATE_NEVER) {
-                               if (*alines != NULL)
-                                       xfree(*alines);
+                               free(*alines);
                                *alines = NULL;
                                cvs_freelines(dlines);
                                rcsnum_free(bnum);
@@ -1922,7 +1896,7 @@ done:
                        nline = TAILQ_NEXT(line, l_list);
                        TAILQ_REMOVE(&(dlines->l_lines), line, l_list);
                        if (line->l_line == NULL) {
-                               xfree(line);
+                               free(line);
                                continue;
                        }
 
@@ -2039,7 +2013,7 @@ rcs_annotate_getlines(RCSFILE *rfp, RCSN
         * All lines have been parsed, now they must be copied over
         * into alines (array) again.
         */
-       xfree(*alines);
+       free(*alines);
 
        i = 0;
        TAILQ_FOREACH(line, &(dlines->l_lines), l_list) {
@@ -2486,7 +2460,7 @@ rcs_kwexp_line(char *rcsfile, struct rcs
                                            cur, lp, l_list);
                                        cur = lp;
                                }
-                               xfree(logp);
+                               free(logp);
 
                                /*
                                 * This is just another hairy mess, but it must
@@ -2509,8 +2483,8 @@ rcs_kwexp_line(char *rcsfile, struct rcs
 
                                end = line->l_line + line->l_len - 1;
 
-                               xfree(prefix);
-                               xfree(sprefix);
+                               free(prefix);
+                               free(sprefix);
 
                        }
 
@@ -2561,7 +2535,7 @@ rcs_kwexp_line(char *rcsfile, struct rcs
 
                /* tmpbuf is now ready, convert to string */
                if (line->l_needsfree)
-                       xfree(line->l_line);
+                       free(line->l_line);
                line->l_len = len;
                line->l_line = buf_release(tmpbuf);
                line->l_needsfree = 1;
Index: rcsnum.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/rcsnum.c,v
retrieving revision 1.56
diff -u -p -u -r1.56 rcsnum.c
--- rcsnum.c    16 Jan 2015 06:40:07 -0000      1.56
+++ rcsnum.c    5 Nov 2015 02:49:21 -0000
@@ -25,6 +25,7 @@
  */
 
 #include <ctype.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include "cvs.h"
@@ -96,7 +97,7 @@ rcsnum_parse(const char *str)
 void
 rcsnum_free(RCSNUM *rn)
 {
-       xfree(rn);
+       free(rn);
 }
 
 /*
Index: rcsparse.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/rcsparse.c,v
retrieving revision 1.11
diff -u -p -u -r1.11 rcsparse.c
--- rcsparse.c  1 Dec 2014 21:58:46 -0000       1.11
+++ rcsparse.c  5 Nov 2015 02:49:21 -0000
@@ -341,11 +341,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);
 }
 
 /*
@@ -610,7 +609,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);
 }
@@ -708,7 +707,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));
@@ -742,7 +741,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: remote.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/remote.c,v
retrieving revision 1.30
diff -u -p -u -r1.30 remote.c
--- remote.c    16 Jan 2015 06:40:07 -0000      1.30
+++ remote.c    5 Nov 2015 02:49:21 -0000
@@ -239,7 +239,7 @@ cvs_remote_send_file_buf(char *file, BUF
            atomicio(vwrite, cvs_client_inlog_fd, data, len) != len)
                fatal("failed to write to log file");
 
-       xfree(data);
+       free(data);
 }
 
 void
@@ -309,5 +309,5 @@ cvs_validate_directory(const char *path)
                        fatal("path validation failed!");
        }
 
-       xfree(dir);
+       free(dir);
 }
Index: remove.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/remove.c,v
retrieving revision 1.82
diff -u -p -u -r1.82 remove.c
--- remove.c    16 Jan 2015 06:40:07 -0000      1.82
+++ remove.c    5 Nov 2015 02:49:21 -0000
@@ -16,6 +16,7 @@
  */
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -212,7 +213,7 @@ cvs_remove_local(struct cvs_file *cf)
                                cvs_ent_add(entlist, entry);
                        }
 
-                       xfree(entry);
+                       free(entry);
 
                        if (verbosity > 0) {
                                cvs_log(LP_NOTICE,
Index: server.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/server.c,v
retrieving revision 1.102
diff -u -p -u -r1.102 server.c
--- server.c    16 Jan 2015 06:40:07 -0000      1.102
+++ server.c    5 Nov 2015 02:49:21 -0000
@@ -138,7 +138,7 @@ cvs_server(int argc, char **argv)
                            "the `Directory` request first", cmd);
 
                (*req->hdlr)(data);
-               xfree(cmd);
+               free(cmd);
        }
 
        return (0);
@@ -159,7 +159,7 @@ cvs_server_send_response(char *fmt, ...)
 
        cvs_log(LP_TRACE, "%s", data);
        cvs_remote_output(data);
-       xfree(data);
+       free(data);
 }
 
 void
@@ -237,7 +237,7 @@ cvs_server_validreq(char *data)
 
        cvs_server_send_response("Valid-requests %s", d);
        cvs_server_send_response("ok");
-       xfree(d);
+       free(d);
 }
 
 void
@@ -363,14 +363,14 @@ cvs_server_directory(char *data)
 
                entlist = cvs_ent_open(parent);
                cvs_ent_add(entlist, entry);
-               xfree(entry);
+               free(entry);
        }
 
        if (server_currentdir != NULL)
-               xfree(server_currentdir);
+               free(server_currentdir);
        server_currentdir = p;
 
-       xfree(dir);
+       free(dir);
 }
 
 void
@@ -404,12 +404,12 @@ cvs_server_modified(char *data)
        len = cvs_remote_input();
 
        cvs_strtomode(mode, &fmode);
-       xfree(mode);
+       free(mode);
 
        flen = strtonum(len, 0, INT_MAX, &errstr);
        if (errstr != NULL)
                fatal("cvs_server_modified: %s", errstr);
-       xfree(len);
+       free(len);
 
        (void)xsnprintf(fpath, PATH_MAX, "%s/%s", server_currentdir, data);
 
@@ -829,6 +829,6 @@ cvs_server_exp_modules(char *module)
        cvs_server_send_response("ok");
 
        server_argc--;
-       xfree(server_argv[1]);
+       free(server_argv[1]);
        server_argv[1] = NULL;
 }
Index: tag.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/tag.c,v
retrieving revision 1.81
diff -u -p -u -r1.81 tag.c
--- tag.c       16 Jan 2015 06:40:07 -0000      1.81
+++ tag.c       5 Nov 2015 02:49:21 -0000
@@ -16,6 +16,7 @@
  */
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -308,19 +309,14 @@ cvs_tag_check_files(struct cvs_file *cf)
        return;
 
 bad:
-       if (fi->file_path != NULL)
-               xfree(fi->file_path);
-       if (fi->crevstr != NULL)
-               xfree(fi->crevstr);
-       if (fi->nrevstr != NULL)
-               xfree(fi->nrevstr);
-       if (fi->tag_new != NULL)
-               xfree(fi->tag_new);
-       if (fi->tag_old != NULL)
-               xfree(fi->tag_old);
+       free(fi->file_path);
+       free(fi->crevstr);
+       free(fi->nrevstr);
+       free(fi->tag_new);
+       free(fi->tag_old);
        if (rev != NULL)
                rcsnum_free(rev);
-       xfree(fi);
+       free(fi);
 }
 
 void
Index: trigger.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/trigger.c,v
retrieving revision 1.22
diff -u -p -u -r1.22 trigger.c
--- trigger.c   16 Jan 2015 06:40:07 -0000      1.22
+++ trigger.c   5 Nov 2015 02:49:21 -0000
@@ -322,8 +322,7 @@ again:
                        expanded = 1;
                }
 
-               if (q != NULL)
-                       xfree(q);
+               free(q);
        }
 
        if (!expanded && default_args != NULL) {
@@ -336,8 +335,7 @@ again:
        return (buf_release(buf));
 
 bad:
-       if (q != NULL)
-               xfree(q);
+       free(q);
        cvs_log(LP_NOTICE, "%s contains malformed command '%s'", file, cmd);
        buf_free(buf);
        return (NULL);
@@ -359,7 +357,7 @@ cvs_trigger_handle(int type, char *repo,
                case CVS_TRIGGER_TAGINFO:
                case CVS_TRIGGER_VERIFYMSG:
                        if ((r = cvs_exec(cmd, NULL, 1)) != 0) {
-                               xfree(cmd);
+                               free(cmd);
                                return (r);
                        }
                        break;
@@ -367,7 +365,7 @@ cvs_trigger_handle(int type, char *repo,
                        (void)cvs_exec(cmd, in, 1);
                        break;
                }
-               xfree(cmd);
+               free(cmd);
        }
 
        return (0);
@@ -460,8 +458,7 @@ cvs_trigger_getlines(char * file, char *
                }
        }
 
-       if (nline != NULL)
-               xfree(nline);
+       free(nline);
 
        if (defaultline != NULL) {
                if (!match) {
@@ -469,13 +466,13 @@ cvs_trigger_getlines(char * file, char *
                        tline->line = defaultline;
                        TAILQ_INSERT_HEAD(list, tline, flist);
                } else
-                       xfree(defaultline);
+                       free(defaultline);
        }
 
        (void)fclose(fp);
        
        if (TAILQ_EMPTY(list)) {
-               xfree(list);
+               free(list);
                list = NULL;
        }
 
@@ -483,9 +480,7 @@ cvs_trigger_getlines(char * file, char *
 
 bad:
        cvs_log(LP_NOTICE, "%s: malformed line %d", file, lineno);
-
-       if (defaultline != NULL)
-               xfree(defaultline);
+       free(defaultline);
        cvs_trigger_freelist(list);
 
        (void)fclose(fp);
@@ -500,11 +495,11 @@ cvs_trigger_freelist(struct trigger_list
 
        while ((line = TAILQ_FIRST(list)) != NULL) {
                TAILQ_REMOVE(list, line, flist);
-               xfree(line->line);
-               xfree(line);
+               free(line->line);
+               free(line);
        }
 
-       xfree(list);
+       free(list);
 }
 
 void
@@ -515,20 +510,13 @@ cvs_trigger_freeinfo(struct file_info_li
        while ((fi = TAILQ_FIRST(list)) != NULL) {
                TAILQ_REMOVE(list, fi, flist);
 
-               if (fi->file_path != NULL)
-                       xfree(fi->file_path);
-               if (fi->file_wd != NULL)
-                       xfree(fi->file_wd);
-               if (fi->crevstr != NULL)
-                       xfree(fi->crevstr);
-               if (fi->nrevstr != NULL)
-                       xfree(fi->nrevstr);
-               if (fi->tag_new != NULL)
-                       xfree(fi->tag_new);
-               if (fi->tag_old != NULL)
-                       xfree(fi->tag_old);
-
-               xfree(fi);
+               free(fi->file_path);
+               free(fi->file_wd);
+               free(fi->crevstr);
+               free(fi->nrevstr);
+               free(fi->tag_new);
+               free(fi->tag_old);
+               free(fi);
        }
 }
 
Index: update.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/update.c,v
retrieving revision 1.170
diff -u -p -u -r1.170 update.c
--- update.c    5 Feb 2015 12:59:57 -0000       1.170
+++ update.c    5 Nov 2015 02:49:21 -0000
@@ -21,6 +21,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdint.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -203,8 +204,7 @@ cvs_update_enterdir(struct cvs_file *cf)
                cvs_parse_tagfile(cf->file_wd, &dirtag, NULL, NULL);
                cvs_mkpath(cf->file_path, cvs_specified_tag != NULL ?
                    cvs_specified_tag : dirtag);
-               if (dirtag != NULL)
-                       xfree(dirtag);
+               free(dirtag);
 
                if ((cf->fd = open(cf->file_path, O_RDONLY)) == -1)
                        fatal("cvs_update_enterdir: `%s': %s",
@@ -218,7 +218,7 @@ cvs_update_enterdir(struct cvs_file *cf)
 
                        entlist = cvs_ent_open(cf->file_wd);
                        cvs_ent_add(entlist, entry);
-                       xfree(entry);
+                       free(entry);
                }
        } else if ((cf->file_status == DIR_CREATE && build_dirs == 0) ||
                    cf->file_status == FILE_UNKNOWN) {
@@ -299,7 +299,7 @@ cvs_update_leavedir(struct cvs_file *cf)
        if (nbytes == -1)
                fatal("cvs_update_leavedir: %s", strerror(errno));
 
-       xfree(buf);
+       free(buf);
 
 prune_it:
        if ((isempty == 1 && prune_dirs == 1) ||
@@ -526,7 +526,7 @@ update_clear_conflict(struct cvs_file *c
 
        entlist = cvs_ent_open(cf->file_wd);
        cvs_ent_add(entlist, entry);
-       xfree(entry);
+       free(entry);
 }
 
 /*
@@ -574,7 +574,7 @@ update_has_conflict_markers(struct cvs_f
        }
 
        cvs_freelines(lines);
-       xfree(content);
+       free(content);
        return (conflict);
 }
 
@@ -717,10 +717,8 @@ out:
        if (rev2 != NULL)
                rcsnum_free(rev2);
 
-       if (jrev1 != NULL)
-               xfree(jrev1);
-       if (jrev2 != NULL)
-               xfree(jrev2);
+       free(jrev1);
+       free(jrev2);
 }
 
 void
Index: util.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/util.c,v
retrieving revision 1.157
diff -u -p -u -r1.157 util.c
--- util.c      16 Jan 2015 06:40:07 -0000      1.157
+++ util.c      5 Nov 2015 02:49:21 -0000
@@ -239,11 +239,11 @@ cvs_getargv(const char *line, char **arg
        if (error != 0) {
                /* ditch the argument vector */
                for (i = 0; i < (u_int)argc; i++)
-                       xfree(argv[i]);
+                       free(argv[i]);
                argc = -1;
        }
 
-       xfree(linebuf);
+       free(linebuf);
        return (argc);
 }
 
@@ -284,8 +284,7 @@ cvs_freeargv(char **argv, int argc)
        int i;
 
        for (i = 0; i < argc; i++)
-               if (argv[i] != NULL)
-                       xfree(argv[i]);
+               free(argv[i]);
 }
 
 /*
@@ -648,14 +647,14 @@ cvs_mkpath(const char *path, char *tag)
 
                        ent = cvs_ent_open(rpath);
                        cvs_ent_add(ent, entry);
-                       xfree(entry);
+                       free(entry);
 
                        if (p != NULL)
                                *p = '/';
                }
        }
 
-       xfree(dir);
+       free(dir);
 }
 
 void
@@ -696,7 +695,7 @@ cvs_mkdir(const char *path, mode_t mode)
                        fatal("cvs_mkdir: %s: %s", rpath, strerror(errno));
        }
 
-       xfree(dir);
+       free(dir);
 }
 
 /*
@@ -741,11 +740,11 @@ cvs_freelines(struct rcs_lines *lines)
        while ((lp = TAILQ_FIRST(&(lines->l_lines))) != NULL) {
                TAILQ_REMOVE(&(lines->l_lines), lp, l_list);
                if (lp->l_needsfree == 1)
-                       xfree(lp->l_line);
-               xfree(lp);
+                       free(lp->l_line);
+               free(lp);
        }
 
-       xfree(lines);
+       free(lines);
 }
 
 /*
@@ -784,9 +783,9 @@ cvs_strsplit(char *str, const char *sep)
 void
 cvs_argv_destroy(struct cvs_argvector *av)
 {
-       xfree(av->str);
-       xfree(av->argv);
-       xfree(av);
+       free(av->str);
+       free(av->argv);
+       free(av);
 }
 
 u_int
Index: worklist.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/worklist.c,v
retrieving revision 1.7
diff -u -p -u -r1.7 worklist.c
--- worklist.c  23 Jul 2010 08:31:19 -0000      1.7
+++ worklist.c  5 Nov 2015 02:49:21 -0000
@@ -24,6 +24,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -68,7 +69,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: xmalloc.c
===================================================================
RCS file: /cvs/src/usr.bin/cvs/xmalloc.c,v
retrieving revision 1.11
diff -u -p -u -r1.11 xmalloc.c
--- xmalloc.c   5 Feb 2015 12:59:57 -0000       1.11
+++ xmalloc.c   5 Nov 2015 02:49:21 -0000
@@ -67,14 +67,6 @@ xreallocarray(void *ptr, size_t nmemb, s
        return new_ptr;
 }
 
-void
-xfree(void *ptr)
-{
-       if (ptr == NULL)
-               fatal("xfree: NULL pointer given as argument");
-       free(ptr);
-}
-
 char *
 xstrdup(const char *str)
 {
Index: xmalloc.h
===================================================================
RCS file: /cvs/src/usr.bin/cvs/xmalloc.h,v
retrieving revision 1.4
diff -u -p -u -r1.4 xmalloc.h
--- xmalloc.h   1 Dec 2014 21:58:46 -0000       1.4
+++ xmalloc.h   5 Nov 2015 02:49:21 -0000
@@ -22,7 +22,6 @@
 void   *xmalloc(size_t);
 void   *xcalloc(size_t, size_t);
 void   *xreallocarray(void *, size_t, size_t);
-void     xfree(void *);
 char   *xstrdup(const char *);
 int     xasprintf(char **, const char *, ...)
                 __attribute__((__format__ (printf, 2, 3)))

Reply via email to