aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/clientpacket.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/clientpacket.c')
-rw-r--r--networking/udhcp/clientpacket.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/networking/udhcp/clientpacket.c b/networking/udhcp/clientpacket.c
index f9f5a3b8c..439aa0250 100644
--- a/networking/udhcp/clientpacket.c
+++ b/networking/udhcp/clientpacket.c
@@ -39,16 +39,13 @@ unsigned long random_xid(void)
39{ 39{
40 static int initialized; 40 static int initialized;
41 if (!initialized) { 41 if (!initialized) {
42 int fd;
43 unsigned long seed; 42 unsigned long seed;
44 43
45 fd = open("/dev/urandom", 0); 44 if (open_read_close("/dev/urandom", &seed, sizeof(seed)) < 0) {
46 if (fd < 0 || read(fd, &seed, sizeof(seed)) < 0) { 45 bb_info_msg("Cannot load seed "
47 bb_info_msg("Could not load seed "
48 "from /dev/urandom: %s", strerror(errno)); 46 "from /dev/urandom: %s", strerror(errno));
49 seed = time(0); 47 seed = time(0);
50 } 48 }
51 if (fd >= 0) close(fd);
52 srand(seed); 49 srand(seed);
53 initialized++; 50 initialized++;
54 } 51 }