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

Reply via email to