Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Feb 2017 20:50:01 +0000 (UTC)
From:      Eric van Gyzen <vangyzen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r313822 - in head/sys: libkern netinet
Message-ID:  <201702162050.v1GKo1DL014626@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vangyzen
Date: Thu Feb 16 20:50:01 2017
New Revision: 313822
URL: https://svnweb.freebsd.org/changeset/base/313822

Log:
  Remove inet_ntoa() from the kernel
  
  inet_ntoa() cannot be used safely in a multithreaded environment
  because it uses a static local buffer.  Remove it from the kernel.
  
  Suggested by:	glebius, emaste
  Reviewed by:	gnn
  MFC after:	never
  Sponsored by:	Dell EMC
  Differential Revision:	https://reviews.freebsd.org/D9625

Modified:
  head/sys/libkern/inet_ntoa.c
  head/sys/netinet/in.h

Modified: head/sys/libkern/inet_ntoa.c
==============================================================================
--- head/sys/libkern/inet_ntoa.c	Thu Feb 16 20:47:41 2017	(r313821)
+++ head/sys/libkern/inet_ntoa.c	Thu Feb 16 20:50:01 2017	(r313822)
@@ -36,20 +36,6 @@ __FBSDID("$FreeBSD$");
 #include <netinet/in.h>
 
 char *
-inet_ntoa(struct in_addr ina)
-{
-	static char buf[4*sizeof "123"];
-	unsigned char *ucp = (unsigned char *)&ina;
-
-	sprintf(buf, "%d.%d.%d.%d",
-		ucp[0] & 0xff,
-		ucp[1] & 0xff,
-		ucp[2] & 0xff,
-		ucp[3] & 0xff);
-	return buf;
-}
-
-char *
 inet_ntoa_r(struct in_addr ina, char *buf)
 {
 	unsigned char *ucp = (unsigned char *)&ina;

Modified: head/sys/netinet/in.h
==============================================================================
--- head/sys/netinet/in.h	Thu Feb 16 20:47:41 2017	(r313821)
+++ head/sys/netinet/in.h	Thu Feb 16 20:50:01 2017	(r313822)
@@ -646,7 +646,6 @@ int	 in_localaddr(struct in_addr);
 int	 in_localip(struct in_addr);
 int	 in_ifhasaddr(struct ifnet *, struct in_addr);
 int	 inet_aton(const char *, struct in_addr *); /* in libkern */
-char	*inet_ntoa(struct in_addr); /* in libkern */
 char	*inet_ntoa_r(struct in_addr ina, char *buf); /* in libkern */
 char	*inet_ntop(int, const void *, char *, socklen_t); /* in libkern */
 int	 inet_pton(int af, const char *, void *); /* in libkern */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702162050.v1GKo1DL014626>