Ted Unangst wrote: > Michael McConville wrote: > > There will probably be more similar patches to come if this is > > acceptable. The legwork was done with the following Coccinelle script: > > I think it should be split up, but I'm happy to see diffs like this.
Is this small enough? It's just lib/libc/gen. Index: auth_subr.c =================================================================== RCS file: /cvs/src/lib/libc/gen/auth_subr.c,v retrieving revision 1.44 diff -u -p -r1.44 auth_subr.c --- auth_subr.c 12 Sep 2015 15:20:14 -0000 1.44 +++ auth_subr.c 14 Sep 2015 13:15:28 -0000 @@ -284,14 +284,10 @@ auth_close(auth_session_t *as) */ if (as->service && as->service != defservice) free(as->service); - if (as->challenge) - free(as->challenge); - if (as->class) - free(as->class); - if (as->style) - free(as->style); - if (as->name) - free(as->name); + free(as->challenge); + free(as->class); + free(as->style); + free(as->name); free(as); return (s); @@ -466,8 +462,7 @@ auth_setitem(auth_session_t *as, auth_it return (0); if (value != NULL && (value = strdup(value)) == NULL) return (-1); - if (as->challenge) - free(as->challenge); + free(as->challenge); as->challenge = value; return (0); @@ -476,8 +471,7 @@ auth_setitem(auth_session_t *as, auth_it return (0); if (value != NULL && (value = strdup(value)) == NULL) return (-1); - if (as->class) - free(as->class); + free(as->class); as->class = value; return (0); @@ -486,8 +480,7 @@ auth_setitem(auth_session_t *as, auth_it return (0); if (value != NULL && (value = strdup(value)) == NULL) return (-1); - if (as->name) - free(as->name); + free(as->name); as->name = value; return (0); @@ -509,8 +502,7 @@ auth_setitem(auth_session_t *as, auth_it if (value == NULL || strchr(value, '/') != NULL || (value = strdup(value)) == NULL) return (-1); - if (as->style) - free(as->style); + free(as->style); as->style = value; return (0); Index: authenticate.c =================================================================== RCS file: /cvs/src/lib/libc/gen/authenticate.c,v retrieving revision 1.23 diff -u -p -r1.23 authenticate.c --- authenticate.c 12 Sep 2015 15:20:14 -0000 1.23 +++ authenticate.c 14 Sep 2015 13:15:28 -0000 @@ -259,8 +259,7 @@ auth_approval(auth_session_t *as, login_ login_close(lc); syslog(LOG_ERR, "%m"); warn(NULL); - if (approve) - free(approve); + free(approve); return (0); } @@ -294,8 +293,7 @@ auth_approval(auth_session_t *as, login_ lc->lc_class, type, (char *)NULL); out: - if (approve) - free(approve); + free(approve); if (close_lc_on_exit) login_close(lc); Index: fts.c =================================================================== RCS file: /cvs/src/lib/libc/gen/fts.c,v retrieving revision 1.51 diff -u -p -r1.51 fts.c --- fts.c 12 Sep 2015 13:32:24 -0000 1.51 +++ fts.c 14 Sep 2015 13:15:28 -0000 @@ -228,8 +228,7 @@ fts_close(FTS *sp) /* Free up child linked list, sort array, path buffer, stream ptr.*/ if (sp->fts_child) fts_lfree(sp->fts_child); - if (sp->fts_array) - free(sp->fts_array); + free(sp->fts_array); free(sp->fts_path); free(sp); @@ -668,8 +667,7 @@ fts_build(FTS *sp, int type) * structures already allocated. */ mem1: saved_errno = errno; - if (p) - free(p); + free(p); fts_lfree(head); (void)closedir(dirp); cur->fts_info = FTS_ERR; @@ -889,8 +887,7 @@ fts_sort(FTS *sp, FTSENT *head, int nite sp->fts_nitems = nitems + 40; if ((a = reallocarray(sp->fts_array, sp->fts_nitems, sizeof(FTSENT *))) == NULL) { - if (sp->fts_array) - free(sp->fts_array); + free(sp->fts_array); sp->fts_array = NULL; sp->fts_nitems = 0; return (head); @@ -964,8 +961,7 @@ fts_palloc(FTS *sp, size_t more) */ more += 256; if (sp->fts_pathlen + more < sp->fts_pathlen) { - if (sp->fts_path) - free(sp->fts_path); + free(sp->fts_path); sp->fts_path = NULL; errno = ENAMETOOLONG; return (1); @@ -973,8 +969,7 @@ fts_palloc(FTS *sp, size_t more) sp->fts_pathlen += more; p = realloc(sp->fts_path, sp->fts_pathlen); if (p == NULL) { - if (sp->fts_path) - free(sp->fts_path); + free(sp->fts_path); sp->fts_path = NULL; return (1); } Index: getcap.c =================================================================== RCS file: /cvs/src/lib/libc/gen/getcap.c,v retrieving revision 1.32 diff -u -p -r1.32 getcap.c --- getcap.c 13 Sep 2015 08:31:47 -0000 1.32 +++ getcap.c 14 Sep 2015 13:15:28 -0000 @@ -87,8 +87,7 @@ int cgetset(const char *ent) { if (ent == NULL) { - if (toprec) - free(toprec); + free(toprec); toprec = NULL; topreclen = 0; return (0); @@ -354,8 +353,7 @@ getent(char **cap, u_int *len, char **db newsize = r_end - record + BFRAG; nrecord = realloc(record, newsize); if (nrecord == NULL) { - if (record) - free(record); + free(record); if (myfd) (void)fclose(fp); errno = ENOMEM; @@ -498,8 +496,7 @@ tc_exp: { tcposend = tcend - record; nrecord = realloc(record, newsize); if (nrecord == NULL) { - if (record) - free(record); + free(record); if (myfd) (void)fclose(fp); free(ibuf); @@ -542,8 +539,7 @@ tc_exp: { if ((nrecord = realloc(record, (size_t)(rp - record))) == NULL) { - if (record) - free(record); + free(record); errno = ENOMEM; return (-2); } @@ -910,8 +906,7 @@ cgetstr(char *buf, const char *cap, char char *nmem; if ((nmem = realloc(mem, size + SFRAG)) == NULL) { - if (mem) - free(mem); + free(mem); return (-2); } mem = nmem; @@ -930,8 +925,7 @@ cgetstr(char *buf, const char *cap, char char *nmem; if ((nmem = realloc(mem, (size_t)(mp - mem))) == NULL) { - if (mem) - free(mem); + free(mem); return (-2); } mem = nmem; @@ -993,8 +987,7 @@ cgetustr(char *buf, const char *cap, cha char *nmem; if ((nmem = realloc(mem, size + SFRAG)) == NULL) { - if (mem) - free(mem); + free(mem); return (-2); } mem = nmem; @@ -1013,8 +1006,7 @@ cgetustr(char *buf, const char *cap, cha char *nmem; if ((nmem = realloc(mem, mp - mem)) == NULL) { - if (mem) - free(mem); + free(mem); return (-2); } mem = nmem; Index: getgrent.c =================================================================== RCS file: /cvs/src/lib/libc/gen/getgrent.c,v retrieving revision 1.43 diff -u -p -r1.43 getgrent.c --- getgrent.c 13 Sep 2015 12:20:12 -0000 1.43 +++ getgrent.c 14 Sep 2015 13:15:28 -0000 @@ -199,8 +199,7 @@ start_gr(void) rewind(_gr_fp); #ifdef YP __ypmode = 0; - if (__ypcurrent) - free(__ypcurrent); + free(__ypcurrent); __ypcurrent = NULL; if (__ypexhead) __ypexclude_free(&__ypexhead); @@ -251,8 +250,7 @@ endgrent_basic(void) _gr_fp = NULL; #ifdef YP __ypmode = 0; - if (__ypcurrent) - free(__ypcurrent); + free(__ypcurrent); __ypcurrent = NULL; if (__ypexhead) __ypexclude_free(&__ypexhead); Index: getmntinfo.c =================================================================== RCS file: /cvs/src/lib/libc/gen/getmntinfo.c,v retrieving revision 1.9 diff -u -p -r1.9 getmntinfo.c --- getmntinfo.c 20 Aug 2015 21:49:29 -0000 1.9 +++ getmntinfo.c 14 Sep 2015 13:15:28 -0000 @@ -47,8 +47,7 @@ getmntinfo(struct statfs **mntbufp, int if (bufsize > 0 && (mntsize = getfsstat(mntbuf, bufsize, flags)) < 0) return (0); while (bufsize <= mntsize * sizeof(struct statfs)) { - if (mntbuf) - free(mntbuf); + free(mntbuf); bufsize = (mntsize + 1) * sizeof(struct statfs); if ((mntbuf = malloc(bufsize)) == 0) { bufsize = 0; Index: getnetgrent.c =================================================================== RCS file: /cvs/src/lib/libc/gen/getnetgrent.c,v retrieving revision 1.26 diff -u -p -r1.26 getnetgrent.c --- getnetgrent.c 14 Sep 2015 10:44:40 -0000 1.26 +++ getnetgrent.c 14 Sep 2015 13:15:28 -0000 @@ -233,11 +233,9 @@ getnetgroup(char **pp) return ng; baddomain: - if (ng->ng_user) - free(ng->ng_user); + free(ng->ng_user); baduser: - if (ng->ng_host) - free(ng->ng_host); + free(ng->ng_host); badhost: free(ng); return NULL; @@ -477,12 +475,9 @@ in_find(char *ypdom, struct stringlist * case _NG_GROUP: /* new netgroup */ i = in_check(host, user, domain, ng); - if (ng->ng_host != NULL) - free(ng->ng_host); - if (ng->ng_user != NULL) - free(ng->ng_user); - if (ng->ng_domain != NULL) - free(ng->ng_domain); + free(ng->ng_host); + free(ng->ng_user); + free(ng->ng_domain); free(ng); if (i) { free(line); @@ -605,12 +600,9 @@ endnetgrent(void) { for (_nglist = _nghead; _nglist != NULL; _nglist = _nghead) { _nghead = _nglist->ng_next; - if (_nglist->ng_host != NULL) - free(_nglist->ng_host); - if (_nglist->ng_user != NULL) - free(_nglist->ng_user); - if (_nglist->ng_domain != NULL) - free(_nglist->ng_domain); + free(_nglist->ng_host); + free(_nglist->ng_user); + free(_nglist->ng_domain); free(_nglist); } @@ -701,8 +693,7 @@ innetgr(const char *grp, const char *hos else if (lookup(NULL, "+", &line, _NG_KEYBYNAME) == 0) yp_get_default_domain(&ypdom); - if (line) - free(line); + free(line); #endif /* Try the fast lookup first */ Index: getpwent.c =================================================================== RCS file: /cvs/src/lib/libc/gen/getpwent.c,v retrieving revision 1.55 diff -u -p -r1.55 getpwent.c --- getpwent.c 13 Sep 2015 15:33:48 -0000 1.55 +++ getpwent.c 14 Sep 2015 13:15:28 -0000 @@ -294,8 +294,7 @@ again: __ypcurrent = NULL; if (r != 0) { __ypmode = YPMODE_NONE; - if (data) - free(data); + free(data); goto again; } __ypcurrent = key; @@ -307,8 +306,7 @@ again: if (r != 0 || __ypcurrentlen > sizeof(__ypline)) { __ypmode = YPMODE_NONE; - if (data) - free(data); + free(data); goto again; } } @@ -333,8 +331,7 @@ again: * if the netgroup is invalid, keep looking * as there may be valid users later on. */ - if (data) - free(data); + free(data); goto again; } bcopy(data, __ypline, datalen); @@ -349,8 +346,7 @@ again: name = NULL; if (r != 0 || __ypcurrentlen > sizeof(__ypline)) { - if (data) - free(data); + free(data); goto again; } bcopy(data, __ypline, datalen); @@ -506,8 +502,7 @@ __has_ypmaster(void) return (checked); } free(result); - if (key) - free(key); + free(key); saved_uid = uid; saved_euid = euid; @@ -566,8 +561,7 @@ __yppwlookup(int lookup, char *name, uid name, strlen(name), &ypcurrent, &ypcurrentlen); if (r != 0 || ypcurrentlen > buflen) { - if (ypcurrent) - free(ypcurrent); + free(ypcurrent); ypcurrent = NULL; continue; } @@ -593,8 +587,7 @@ pwnam_netgrp: } else goto pwnam_netgrp; if (r != 0 || ypcurrentlen > buflen) { - if (ypcurrent) - free(ypcurrent); + free(ypcurrent); ypcurrent = NULL; /* * just because this @@ -615,8 +608,7 @@ pwnam_netgrp: user, strlen(user), &ypcurrent, &ypcurrentlen); if (r != 0 || ypcurrentlen > buflen) { - if (ypcurrent) - free(ypcurrent); + free(ypcurrent); ypcurrent = NULL; continue; } @@ -661,8 +653,7 @@ pwnam_netgrp: done: __ypexclude_free(&ypexhead); __ypproto = NULL; - if (ypcurrent) - free(ypcurrent); + free(ypcurrent); ypcurrent = NULL; if (map) free(name); @@ -840,8 +831,7 @@ setpassent(int stayopen) _pw_stayopen = stayopen; #ifdef YP __ypmode = YPMODE_NONE; - if (__ypcurrent) - free(__ypcurrent); + free(__ypcurrent); __ypcurrent = NULL; __ypexclude_free(&__ypexhead); __ypproto = NULL; @@ -871,8 +861,7 @@ endpwent(void) } #ifdef YP __ypmode = YPMODE_NONE; - if (__ypcurrent) - free(__ypcurrent); + free(__ypcurrent); __ypcurrent = NULL; __ypexclude_free(&__ypexhead); __ypproto = NULL; Index: getusershell.c =================================================================== RCS file: /cvs/src/lib/libc/gen/getusershell.c,v retrieving revision 1.15 diff -u -p -r1.15 getusershell.c --- getusershell.c 6 Feb 2015 23:21:58 -0000 1.15 +++ getusershell.c 14 Sep 2015 13:15:28 -0000 @@ -67,11 +67,9 @@ void endusershell(void) { - if (shells != NULL) - free(shells); + free(shells); shells = NULL; - if (strings != NULL) - free(strings); + free(strings); strings = NULL; curshell = NULL; } @@ -90,11 +88,9 @@ initshells(void) FILE *fp; struct stat statb; - if (shells != NULL) - free(shells); + free(shells); shells = NULL; - if (strings != NULL) - free(strings); + free(strings); strings = NULL; if ((fp = fopen(_PATH_SHELLS, "re")) == NULL) return (okshells); Index: glob.c =================================================================== RCS file: /cvs/src/lib/libc/gen/glob.c,v retrieving revision 1.43 diff -u -p -r1.43 glob.c --- glob.c 13 Jun 2015 16:57:04 -0000 1.43 +++ glob.c 14 Sep 2015 13:15:28 -0000 @@ -954,15 +954,13 @@ globfree(glob_t *pglob) if (pglob->gl_pathv != NULL) { pp = pglob->gl_pathv + pglob->gl_offs; for (i = pglob->gl_pathc; i--; ++pp) - if (*pp) - free(*pp); + free(*pp); free(pglob->gl_pathv); pglob->gl_pathv = NULL; } if (pglob->gl_statv != NULL) { for (i = 0; i < pglob->gl_pathc; i++) { - if (pglob->gl_statv[i] != NULL) - free(pglob->gl_statv[i]); + free(pglob->gl_statv[i]); } free(pglob->gl_statv); pglob->gl_statv = NULL; Index: login_cap.c =================================================================== RCS file: /cvs/src/lib/libc/gen/login_cap.c,v retrieving revision 1.31 diff -u -p -r1.31 login_cap.c --- login_cap.c 13 Sep 2015 19:58:50 -0000 1.31 +++ login_cap.c 14 Sep 2015 13:15:28 -0000 @@ -209,10 +209,8 @@ login_getstyle(login_cap_t *lc, char *st if (lc->lc_style == NULL) syslog(LOG_ERR, "strdup: %m"); } - if (f1) - free(f1); - if (f2) - free(f2); + free(f1); + free(f2); return (lc->lc_style); } DEF_WEAK(login_getstyle); @@ -270,12 +268,10 @@ login_getcaptime(login_cap_t *lc, char * switch (stat = cgetstr(lc->lc_cap, cap, &res)) { case -1: - if (res) - free(res); + free(res); return (def); case -2: - if (res) - free(res); + free(res); syslog(LOG_ERR, "%s: getting capability %s: %m", lc->lc_class, cap); errno = ERANGE; @@ -283,8 +279,7 @@ login_getcaptime(login_cap_t *lc, char * default: if (stat >= 0) break; - if (res) - free(res); + free(res); syslog(LOG_ERR, "%s: unexpected error with capability %s", lc->lc_class, cap); errno = ERANGE; @@ -359,12 +354,10 @@ login_getcapnum(login_cap_t *lc, char *c switch (stat = cgetstr(lc->lc_cap, cap, &res)) { case -1: - if (res) - free(res); + free(res); return (def); case -2: - if (res) - free(res); + free(res); syslog(LOG_ERR, "%s: getting capability %s: %m", lc->lc_class, cap); errno = ERANGE; @@ -372,8 +365,7 @@ login_getcapnum(login_cap_t *lc, char *c default: if (stat >= 0) break; - if (res) - free(res); + free(res); syslog(LOG_ERR, "%s: unexpected error with capability %s", lc->lc_class, cap); errno = ERANGE; @@ -417,12 +409,10 @@ login_getcapsize(login_cap_t *lc, char * switch (stat = cgetstr(lc->lc_cap, cap, &res)) { case -1: - if (res) - free(res); + free(res); return (def); case -2: - if (res) - free(res); + free(res); syslog(LOG_ERR, "%s: getting capability %s: %m", lc->lc_class, cap); errno = ERANGE; @@ -430,8 +420,7 @@ login_getcapsize(login_cap_t *lc, char * default: if (stat >= 0) break; - if (res) - free(res); + free(res); syslog(LOG_ERR, "%s: unexpected error with capability %s", lc->lc_class, cap); errno = ERANGE; @@ -467,12 +456,9 @@ void login_close(login_cap_t *lc) { if (lc) { - if (lc->lc_class) - free(lc->lc_class); - if (lc->lc_cap) - free(lc->lc_cap); - if (lc->lc_style) - free(lc->lc_style); + free(lc->lc_class); + free(lc->lc_cap); + free(lc->lc_style); free(lc); } }