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