Re: [PATCH] iputils/ping_common.c: avoid gethostbyaddr during ping flood

Previous thread: [IPV4]: route: fix crash ip_route_input by Patrick McHardy on Wednesday, February 6, 2008 - 6:36 am. (2 messages)

Next thread: Re: oops with ipcomp by Beschorner Daniel on Wednesday, February 6, 2008 - 7:43 am. (8 messages)
From: Chris Caputo
Date: Wednesday, February 6, 2008 - 7:02 am

[Resend with whitespace preserved.]

Unless a destination is specified by IP address, a ping flood results in a 
gethostbyaddr() for every echo reply.  Thus a DNS flood can accompany a 
ping flood.
 
This patch makes it so a gethostbyaddr() is not performed with each echo 
reply during a ping flood.

Signed-off-by: Chris Caputo <ccaputo@alt.net>
---
 ping_common.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

===================================================================
diff -ur iputils-s20071127/ping_common.c iputils/ping_common.c
--- iputils-s20071127/ping_common.c	2007-11-27 00:57:27.000000000 +0000
+++ iputils/ping_common.c	2008-02-06 12:38:01.000000000 +0000
@@ -114,10 +114,6 @@
 	case 'd':
 		options |= F_SO_DEBUG;
 		break;
-	case 'f':
-		options |= F_FLOOD;
-		setbuf(stdout, (char *)NULL);
-		break;
 	case 'i':		/* wait between sending packets */
 	{
 		if (strchr(optarg, '.')) {
@@ -168,6 +164,10 @@
 			exit(2);
 		}
 		break;
+	case 'f':
+		options |= F_FLOOD;
+		setbuf(stdout, (char *)NULL);
+		/* fallthrough to numeric - avoid gethostbyaddr during flood */
 	case 'n':
 		options |= F_NUMERIC;
 		break;
--

From: Chris Caputo
Date: Wednesday, June 16, 2010 - 6:08 pm

Updated for iputils-s20100418...  Can someone review and work into next 
release?

Thanks,
Chris

---
Unless a destination is specified by IP address, a ping flood results in a
gethostbyaddr() for every echo reply.  Thus a DNS flood can accompany a
ping flood.

This patch makes it so a gethostbyaddr() is not performed with each echo
reply during a ping flood.

Signed-off-by: Chris Caputo <ccaputo@alt.net>
-------
--- iputils-s20100418/ping_common.c	2010-04-18 04:45:45.000000000 +0000
+++ iputils-dev/ping_common.c	2010-06-17 01:00:59.000000000 +0000
@@ -118,10 +118,6 @@ void common_options(int ch)
 	case 'D':
 		options |= F_PTIMEOFDAY;
 		break;
-	case 'f':
-		options |= F_FLOOD;
-		setbuf(stdout, (char *)NULL);
-		break;
 	case 'i':		/* wait between sending packets */
 	{
 		if (strchr(optarg, '.')) {
@@ -183,6 +179,10 @@ void common_options(int ch)
 			exit(2);
 		}
 		break;
+	case 'f':
+		options |= F_FLOOD;
+		setbuf(stdout, (char *)NULL);
+		/* fallthrough to numeric - avoid gethostbyaddr during flood */
 	case 'n':
 		options |= F_NUMERIC;
 		break;
--

From: YOSHIFUJI Hideaki
Date: Wednesday, June 16, 2010 - 7:08 pm

Applied, thanks.

--yoshfuji

--

Previous thread: [IPV4]: route: fix crash ip_route_input by Patrick McHardy on Wednesday, February 6, 2008 - 6:36 am. (2 messages)

Next thread: Re: oops with ipcomp by Beschorner Daniel on Wednesday, February 6, 2008 - 7:43 am. (8 messages)