[monitoring-plugins] check_dhcp: Make xid a bit more random

Holger Weiss <[email protected]>
Newsgroups gmane.network.nagios.cvs
Message-ID <20160916085016.89A242005697__16898.1078816161$1474015830$gmane$org@orwell.monitoring-plugins.org>
 Module: monitoring-plugins
 Branch: master
 Commit: 8672529b37fc73fbcc15cb2b2ba9b677f37dac5e
 Author: Holger Weiss <[email protected]>
   Date: Fri Sep 16 09:43:04 2016 +0200
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=8672529

check_dhcp: Make xid a bit more random

Don't just use the current time(2) to seed the PRNG that generates the
xid.  A DHCP server might be checked multiple times per second.

---

 plugins-root/check_dhcp.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c
index 445ddbc..88b7ca1 100644
--- a/plugins-root/check_dhcp.c
+++ b/plugins-root/check_dhcp.c
@@ -463,10 +463,9 @@ int send_dhcp_discover(int sock){
 	discover_packet.hlen=ETHERNET_HARDWARE_ADDRESS_LENGTH;
 
 	/*
-	 * transaction ID is supposed to be random.  We won't use the address so
-	 * we don't care about high entropy here.  time(2) is good enough.
+	 * transaction ID is supposed to be random.
 	 */
-	srand(time(NULL));
+	srand(time(NULL)^getpid());
 	packet_xid=random();
 	discover_packet.xid=htonl(packet_xid);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.