svn commit: r319175 - in stable/11/contrib/ipfilter: . iplang ipsd ipsend lib tools
Cy Schubert
cy at FreeBSD.org
Tue May 30 03:22:20 UTC 2017
Author: cy
Date: Tue May 30 03:22:18 2017
New Revision: 319175
URL: https://svnweb.freebsd.org/changeset/base/319175
Log:
MFC r315368:
calloc() and realloc() modernization.
This commit replaces calloc calls, which called calloc() as if it were
malloc() by allocating a multiple of objects as a sizeof multiplied by
the number of objects. The patch rectifies this by calling calloc() as
it was meant to be called.
This commit also replaces realloc() with reallocarray() in a similar
fashion as above. Instead of calculating the memory to reallocated
(changed) by multiplying sizeof by the number of objects, the sizeof
and number are passed as separate arguments to reallocarray(), letting
reallocarray() do the multiplication instead. Like the calloc()
adjustment above, this is approach is cleaner and more elegant than
than the previous code.
This has been tested on my production firewall and a laptop (also
running ipfilter).
Submitted by: pfg
Modified:
stable/11/contrib/ipfilter/ip_fil.c
stable/11/contrib/ipfilter/iplang/iplang_l.l
stable/11/contrib/ipfilter/ipsd/ipsd.c
stable/11/contrib/ipfilter/ipsd/ipsdr.c
stable/11/contrib/ipfilter/ipsend/lsock.c
stable/11/contrib/ipfilter/ipsend/sock.c
stable/11/contrib/ipfilter/lib/parsefields.c
stable/11/contrib/ipfilter/lib/parseipfexpr.c
stable/11/contrib/ipfilter/radix_ipf.c
stable/11/contrib/ipfilter/tools/ipf_y.y
stable/11/contrib/ipfilter/tools/ipfcomp.c
stable/11/contrib/ipfilter/tools/ipfstat.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/contrib/ipfilter/ip_fil.c
==============================================================================
--- stable/11/contrib/ipfilter/ip_fil.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/ip_fil.c Tue May 30 03:22:18 2017 (r319175)
@@ -317,8 +317,8 @@ get_unit(name, family)
} else {
old_ifneta = ifneta;
nifs++;
- ifneta = (struct ifnet **)realloc(ifneta,
- (nifs + 1) * sizeof(ifp));
+ ifneta = (struct ifnet **)reallocarray(ifneta, nifs + 1,
+ sizeof(ifp));
if (!ifneta) {
free(old_ifneta);
nifs = 0;
Modified: stable/11/contrib/ipfilter/iplang/iplang_l.l
==============================================================================
--- stable/11/contrib/ipfilter/iplang/iplang_l.l Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/iplang/iplang_l.l Tue May 30 03:22:18 2017 (r319175)
@@ -195,7 +195,8 @@ void push_proto()
if (!prstack)
prstack = (int *)malloc(sizeof(int));
else
- prstack = (int *)realloc((char *)prstack, numpr * sizeof(int));
+ prstack = (int *)reallocarray((char *)prstack, numpr,
+ sizeof(int));
prstack[numpr - 1] = oldipproto;
}
Modified: stable/11/contrib/ipfilter/ipsd/ipsd.c
==============================================================================
--- stable/11/contrib/ipfilter/ipsd/ipsd.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/ipsd/ipsd.c Tue May 30 03:22:18 2017 (r319175)
@@ -129,7 +129,7 @@ int detect(ip, tcp)
if (++ihp->sd_cnt == ihp->sd_sz)
{
ihp->sd_sz += 8;
- sh = realloc(sh, ihp->sd_sz * sizeof(*sh));
+ sh = reallocarray(sh, ihp->sd_sz, sizeof(*sh));
ihp->sd_hit = sh;
}
qsort(sh, ihp->sd_cnt, sizeof(*sh), ipcmp);
Modified: stable/11/contrib/ipfilter/ipsd/ipsdr.c
==============================================================================
--- stable/11/contrib/ipfilter/ipsd/ipsdr.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/ipsd/ipsdr.c Tue May 30 03:22:18 2017 (r319175)
@@ -140,7 +140,7 @@ int detect(srcip, dport, date)
if (++ihp->sd_cnt == ihp->sd_sz)
{
ihp->sd_sz += 8;
- sh = realloc(sh, ihp->sd_sz * sizeof(*sh));
+ sh = reallocarray(sh, ihp->sd_sz, sizeof(*sh));
ihp->sd_hit = sh;
}
qsort(sh, ihp->sd_cnt, sizeof(*sh), ipcmp);
Modified: stable/11/contrib/ipfilter/ipsend/lsock.c
==============================================================================
--- stable/11/contrib/ipfilter/ipsend/lsock.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/ipsend/lsock.c Tue May 30 03:22:18 2017 (r319175)
@@ -163,7 +163,7 @@ struct sock *find_tcp(fd, ti)
return NULL;
fs = p->files;
- o = (struct file **)calloc(1, sizeof(*o) * (fs->count + 1));
+ o = (struct file **)calloc(fs->count + 1, sizeof(*o));
if (KMCPY(o, fs->fd, (fs->count + 1) * sizeof(*o)) == -1)
{
fprintf(stderr, "read(%#x,%#x,%d) - fd - failed\n",
Modified: stable/11/contrib/ipfilter/ipsend/sock.c
==============================================================================
--- stable/11/contrib/ipfilter/ipsend/sock.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/ipsend/sock.c Tue May 30 03:22:18 2017 (r319175)
@@ -226,7 +226,7 @@ struct tcpcb *find_tcp(fd, ti)
}
#endif
- o = (struct file **)calloc(1, sizeof(*o) * (up->u_lastfile + 1));
+ o = (struct file **)calloc(up->u_lastfile + 1, sizeof(*o));
if (KMCPY(o, up->u_ofile, (up->u_lastfile + 1) * sizeof(*o)) == -1)
{
fprintf(stderr, "read(%#x,%#x,%d) - u_ofile - failed\n",
@@ -330,7 +330,7 @@ struct tcpcb *find_tcp(tfd, ti)
i = NULL;
t = NULL;
- o = (struct file **)calloc(1, sizeof(*o) * (fd->fd_lastfile + 1));
+ o = (struct file **)calloc(fd->fd_lastfile + 1, sizeof(*o));
if (KMCPY(o, fd->fd_ofiles, (fd->fd_lastfile + 1) * sizeof(*o)) == -1)
{
fprintf(stderr, "read(%#lx,%#lx,%lu) - u_ofile - failed\n",
Modified: stable/11/contrib/ipfilter/lib/parsefields.c
==============================================================================
--- stable/11/contrib/ipfilter/lib/parsefields.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/lib/parsefields.c Tue May 30 03:22:18 2017 (r319175)
@@ -32,7 +32,7 @@ wordtab_t *parsefields(table, arg)
if (fields == NULL) {
fields = malloc(2 * sizeof(*fields));
} else {
- fields = realloc(fields, (num + 1) * sizeof(*fields));
+ fields = reallocarray(fields, num + 1, sizeof(*fields));
if (fields == NULL) {
warnx("memory allocation error at %d in %s in %s", __LINE__, __FUNCTION__, __FILE__);
abort();
Modified: stable/11/contrib/ipfilter/lib/parseipfexpr.c
==============================================================================
--- stable/11/contrib/ipfilter/lib/parseipfexpr.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/lib/parseipfexpr.c Tue May 30 03:22:18 2017 (r319175)
@@ -123,9 +123,9 @@ parseipfexpr(line, errorptr)
osize = asize;
asize += 4 + (items * e->ipoe_nbasearg * e->ipoe_argsize);
if (oplist == NULL)
- oplist = calloc(1, sizeof(int) * (asize + 2));
+ oplist = calloc(asize + 2, sizeof(int));
else
- oplist = realloc(oplist, sizeof(int) * (asize + 2));
+ oplist = reallocarray(oplist, asize + 2, sizeof(int));
if (oplist == NULL) {
error = "oplist alloc failed";
goto parseerror;
Modified: stable/11/contrib/ipfilter/radix_ipf.c
==============================================================================
--- stable/11/contrib/ipfilter/radix_ipf.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/radix_ipf.c Tue May 30 03:22:18 2017 (r319175)
@@ -1192,7 +1192,7 @@ buildtab(void)
if (lines == 1)
tab = malloc(sizeof(*tab) * 2);
else
- tab = realloc(tab, (lines + 1) * sizeof(*tab));
+ tab = reallocarray(tab, lines + 1, sizeof(*tab));
tab[lines - 1].host = strdup(line);
s = strchr(tab[lines - 1].host, '/');
*s++ = '\0';
Modified: stable/11/contrib/ipfilter/tools/ipf_y.y
==============================================================================
--- stable/11/contrib/ipfilter/tools/ipf_y.y Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/tools/ipf_y.y Tue May 30 03:22:18 2017 (r319175)
@@ -2195,7 +2195,7 @@ char *phrase;
for (i = 0, s = strtok(phrase, " \r\n\t"); s != NULL;
s = strtok(NULL, " \r\n\t"), i++) {
- fb = realloc(fb, (i / 4 + 1) * sizeof(*fb));
+ fb = reallocarray(fb, i / 4 + 1, sizeof(*fb));
if (fb == NULL) {
warnx("memory allocation error at %d in %s in %s", __LINE__, __FUNCTION__, __FILE__);
abort();
Modified: stable/11/contrib/ipfilter/tools/ipfcomp.c
==============================================================================
--- stable/11/contrib/ipfilter/tools/ipfcomp.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/tools/ipfcomp.c Tue May 30 03:22:18 2017 (r319175)
@@ -965,7 +965,7 @@ void printC(dir)
frgroup_t *g;
if (m == NULL)
- m = (mc_t *)calloc(1, sizeof(*m) * FRC_MAX);
+ m = (mc_t *)calloc(FRC_MAX, sizeof(*m));
for (g = groups; g != NULL; g = g->fg_next) {
if ((dir == 0) && ((g->fg_flags & FR_INQUE) != 0))
Modified: stable/11/contrib/ipfilter/tools/ipfstat.c
==============================================================================
--- stable/11/contrib/ipfilter/tools/ipfstat.c Tue May 30 03:10:05 2017 (r319174)
+++ stable/11/contrib/ipfilter/tools/ipfstat.c Tue May 30 03:22:18 2017 (r319175)
@@ -1422,8 +1422,8 @@ static void topipstates(saddr, daddr, sport, dport, pr
tsentry++;
if (!maxtsentries || tsentry == maxtsentries) {
maxtsentries += STGROWSIZE;
- tstable = realloc(tstable,
- maxtsentries * sizeof(statetop_t));
+ tstable = reallocarray(tstable, maxtsentries,
+ sizeof(statetop_t));
if (tstable == NULL) {
perror("realloc");
exit(-1);
More information about the svn-src-stable-11
mailing list