about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2014-05-26 18:01:31 +0200
committerAndreas Schwab <schwab@suse.de>2014-06-03 18:03:39 +0200
commitf9d2d03254a58d92635a311a42253eeed5a40a47 (patch)
tree26330e7027914a476f723efe2b169b4dbf994448
parent71840409ea45ab9e49d0ac70dfc1c355accf355f (diff)
downloadglibc-f9d2d03254a58d92635a311a42253eeed5a40a47.tar.gz
glibc-f9d2d03254a58d92635a311a42253eeed5a40a47.tar.xz
glibc-f9d2d03254a58d92635a311a42253eeed5a40a47.zip
Fix invalid file descriptor reuse while sending DNS query (BZ #15946)
-rw-r--r--ChangeLog6
-rw-r--r--NEWS20
-rw-r--r--resolv/res_send.c1
3 files changed, 17 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index aa71a3731f..63fe9153a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-03  Andreas Schwab  <schwab@suse.de>
+
+	[BZ #15946]
+	* resolv/res_send.c (send_dg): Reload file descriptor after
+	calling reopen.
+
 2014-06-03  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
 	* sysdeps/s390/fpu/libm-test-ulps: Regenerate.
diff --git a/NEWS b/NEWS
index f6ace19d5f..38d2c50ce9 100644
--- a/NEWS
+++ b/NEWS
@@ -10,16 +10,16 @@ Version 2.20
 * The following bugs are resolved with this release:
 
   6804, 9894, 12994, 13347, 13651, 14308, 14770, 15119, 15132, 15347, 15514,
-  15804, 15894, 16002, 16064, 16198, 16284, 16348, 16349, 16357, 16362,
-  16447, 16516, 16532, 16545, 16564, 16574, 16599, 16600, 16609, 16610,
-  16611, 16613, 16619, 16623, 16629, 16632, 16634, 16639, 16642, 16648,
-  16649, 16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706,
-  16707, 16712, 16713, 16714, 16724, 16731, 16739, 16740, 16743, 16754,
-  16758, 16759, 16760, 16770, 16786, 16789, 16791, 16796, 16799, 16800,
-  16815, 16823, 16824, 16831, 16838, 16849, 16854, 16876, 16877, 16878,
-  16885, 16888, 16890, 16912, 16915, 16916, 16917, 16922, 16927, 16928,
-  16932, 16943, 16958, 16966, 16967, 16965, 16977, 16978, 16984, 16990,
-  17009.
+  15804, 15894, 15946, 16002, 16064, 16198, 16284, 16348, 16349, 16357,
+  16362, 16447, 16516, 16532, 16545, 16564, 16574, 16599, 16600, 16609,
+  16610, 16611, 16613, 16619, 16623, 16629, 16632, 16634, 16639, 16642,
+  16648, 16649, 16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701,
+  16706, 16707, 16712, 16713, 16714, 16724, 16731, 16739, 16740, 16743,
+  16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791, 16796, 16799,
+  16800, 16815, 16823, 16824, 16831, 16838, 16849, 16854, 16876, 16877,
+  16878, 16885, 16888, 16890, 16912, 16915, 16916, 16917, 16922, 16927,
+  16928, 16932, 16943, 16958, 16966, 16967, 16965, 16977, 16978, 16984,
+  16990, 17009.
 
 * The minimum Linux kernel version that this version of the GNU C Library
   can be used with is 2.6.32.
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 3273d55ceb..af42b8aac2 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1410,6 +1410,7 @@ send_dg(res_state statp,
 					retval = reopen (statp, terrno, ns);
 					if (retval <= 0)
 						return retval;
+					pfd[0].fd = EXT(statp).nssocks[ns];
 				}
 			}
 			goto wait;