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