--- trunk/reactos/services/dhcp/dhclient.c 2005-10-21 23:44:43 UTC (rev 18669)
+++ trunk/reactos/services/dhcp/dhclient.c 2005-10-22 01:46:46 UTC (rev 18670)
@@ -234,7 +234,7 @@
/* make_request doesn't initialize xid because it normally comes
from the DHCPDISCOVER, but we haven't sent a DHCPDISCOVER,
so pick an xid now. */
- ip->client->xid = arc4random();
+ ip->client->xid = rand();
/* Make a DHCPREQUEST packet, and set appropriate per-interface
flags. */
@@ -940,7 +940,7 @@
ip->client->interval =
ip->client->config->initial_interval;
else {
- ip->client->interval += (arc4random() >> 2) %
+ ip->client->interval += (rand() >> 2) %
(2 * ip->client->interval);
}
@@ -949,7 +949,7 @@
ip->client->config->backoff_cutoff)
ip->client->interval =
((ip->client->config->backoff_cutoff / 2)
- + ((arc4random() >> 2) %
+ + ((rand() >> 2) %
ip->client->config->backoff_cutoff));
} else if (!ip->client->interval)
ip->client->interval =
@@ -1142,7 +1142,7 @@
if (!ip->client->interval)
ip->client->interval = ip->client->config->initial_interval;
else
- ip->client->interval += ((arc4random() >> 2) %
+ ip->client->interval += ((rand() >> 2) %
(2 * ip->client->interval));
/* Don't backoff past cutoff. */
@@ -1150,7 +1150,7 @@
ip->client->config->backoff_cutoff)
ip->client->interval =
((ip->client->config->backoff_cutoff / 2) +
- ((arc4random() >> 2) % ip->client->interval));
+ ((rand() >> 2) % ip->client->interval));
/* If the backoff would take us to the expiry time, just set the
timeout to the expiry time. */
@@ -1280,7 +1280,7 @@
ip->client->packet.htype = ip->hw_address.htype;
ip->client->packet.hlen = ip->hw_address.hlen;
ip->client->packet.hops = 0;
- ip->client->packet.xid = arc4random();
+ ip->client->packet.xid = rand();
ip->client->packet.secs = 0; /* filled in by send_discover. */
ip->client->packet.flags = 0;
@@ -1986,7 +1986,7 @@
ipv4addrs(char * buf)
{
char *tmp;
- struct in_addr jnk;
+ unsigned long jnk;
int i = 0;
note("Input: %s\n", buf);
@@ -1994,7 +1994,8 @@
do {
tmp = strtok(buf, " ");
note("got %s\n", tmp);
- if( tmp && inet_aton(tmp, &jnk) ) i++;
+ jnk = inet_addr( tmp );
+ if( tmp ) i++;
buf = NULL;
} while( tmp );
--- trunk/reactos/services/dhcp/include/dhcpd.h 2005-10-21 23:44:43 UTC (rev 18669)
+++ trunk/reactos/services/dhcp/include/dhcpd.h 2005-10-22 01:46:46 UTC (rev 18670)
@@ -322,7 +322,10 @@
struct string_list *new_string_list(size_t size);
struct hash_table *new_hash_table(int);
struct hash_bucket *new_hash_bucket(void);
+void dfree(void *, char *);
+void free_hash_bucket(struct hash_bucket *, char *);
+
/* bpf.c */
int if_register_bpf(struct interface_info *);
void if_register_send(struct interface_info *);
--- trunk/reactos/services/dhcp/options.c 2005-10-21 23:44:43 UTC (rev 18669)
+++ trunk/reactos/services/dhcp/options.c 2005-10-22 01:46:46 UTC (rev 18670)
@@ -41,6 +41,7 @@
*/
#include <ctype.h>
+#include <string.h>
#define DHCP_OPTION_DATA
#include "rosdhcp.h"
@@ -592,7 +593,8 @@
break;
case 'I':
foo.s_addr = htonl(getULong(dp));
- opcount = strlcpy(op, inet_ntoa(foo), opleft);
+ strncpy(op, inet_ntoa(foo), opleft - 1);
+ op[opleft - 1] = ANSI_NULL;
if (opcount >= opleft)
goto toobig;
opleft -= opcount;
@@ -650,8 +652,8 @@
opleft -= opcount;
break;
case 'f':
- opcount = strlcpy(op,
- *dp++ ? "true" : "false", opleft);
+ opcount = (size_t) strncpy(op, *dp++ ? "true" : "false", opleft - 1);
+ op[opleft - 1] = ANSI_NULL;
if (opcount >= opleft)
goto toobig;
opleft -= opcount;