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 mailing list