On Mon, Sep 14, 2015 at 09:18:35AM -0400, Michael McConville wrote: > 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. >
still a bit long to keep attention while reading it :) if anybody wants to commit it, it is OK. > 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); > } > } > -- Sebastien Marie