2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-31 14:25:41 +00:00

Clean up some compiler warnings

This commit is contained in:
Shawn Routhier
2010-02-02 00:44:06 +00:00
parent 3c941d426d
commit a35285748d
9 changed files with 35 additions and 26 deletions

View File

@@ -3782,13 +3782,13 @@ packet6_len_okay(const char *packet, int len) {
}
if ((packet[0] == DHCPV6_RELAY_FORW) ||
(packet[0] == DHCPV6_RELAY_REPL)) {
if (len >= sizeof(struct dhcpv6_relay_packet)) {
if (len >= offsetof(struct dhcpv6_relay_packet, options)) {
return 1;
} else {
return 0;
}
} else {
if (len >= sizeof(struct dhcpv6_packet)) {
if (len >= offsetof(struct dhcpv6_packet, options)) {
return 1;
} else {
return 0;

View File

@@ -508,6 +508,8 @@ CFLAGS="$CFLAGS $STD_CWARNINGS"
# Try to add the bind include directory
CFLAGS="$CFLAGS -I$libbind/include"
AC_C_FLEXIBLE_ARRAY_MEMBER
AC_OUTPUT([
Makefile
client/Makefile

View File

@@ -177,7 +177,7 @@ extern const int dhcpv6_type_name_max;
struct dhcpv6_packet {
unsigned char msg_type;
unsigned char transaction_id[3];
unsigned char options[0];
unsigned char options[FLEXIBLE_ARRAY_MEMBER];
};
/* Offset into DHCPV6 Reply packets where Options spaces commence. */
@@ -191,7 +191,7 @@ struct dhcpv6_relay_packet {
unsigned char hop_count;
unsigned char link_address[16];
unsigned char peer_address[16];
unsigned char options[0];
unsigned char options[FLEXIBLE_ARRAY_MEMBER];
};
/* Leasequery query-types (RFC 5007) */

View File

@@ -297,23 +297,27 @@ do_id_hash(const void *name, unsigned len, unsigned size)
if (len == 0)
return 0;
/* The switch indexes our starting position into the do/while loop,
* taking up the remainder after hashing in all the other bytes in
* threes.
/*
* The switch handles our starting conditions, then we hash the
* remaining bytes in groups of 3
*/
switch (len % 3) {
do {
case 0:
accum ^= *s++ << 16;
break;
case 2:
accum ^= *s++ << 8;
case 1:
accum ^= *s++;
} while (s < end);
break;
}
while (s < end) {
accum ^= *s++ << 16;
accum ^= *s++ << 8;
accum ^= *s++;
}
return accum % size;
}

View File

@@ -1355,7 +1355,7 @@ process_up6(struct packet *packet, struct stream_list *dp) {
/* Build the relay-forward header. */
relay = (struct dhcpv6_relay_packet *) forw_data;
cursor = sizeof(*relay);
cursor = offsetof(struct dhcpv6_relay_packet, options);
relay->msg_type = DHCPV6_RELAY_FORW;
if (packet->dhcpv6_msg_type == DHCPV6_RELAY_FORW) {
if (packet->dhcpv6_hop_count >= max_hop_count) {
@@ -1483,7 +1483,7 @@ process_down6(struct packet *packet) {
if (!evaluate_option_cache(&relay_msg, packet, NULL, NULL,
packet->options, NULL,
&global_scope, oc, MDL) ||
(relay_msg.len < sizeof(struct dhcpv6_packet))) {
(relay_msg.len < offsetof (struct dhcpv6_packet, options))) {
log_error("Can't evaluate relay-msg.");
return;
}

View File

@@ -3423,7 +3423,6 @@ int find_lease (struct lease **lp,
piaddr (hw_lease -> ip_addr));
#endif
goto n_hw;
continue;
}
if (hw_lease -> subnet -> shared_network != share) {
#if defined (DEBUG_FIND_LEASE)
@@ -3431,7 +3430,6 @@ int find_lease (struct lease **lp,
piaddr (hw_lease -> ip_addr));
#endif
goto n_hw;
continue;
}
if ((hw_lease -> pool -> prohibit_list &&
permitted (packet, hw_lease -> pool -> prohibit_list)) ||

View File

@@ -4226,7 +4226,7 @@ dhcpv6_confirm(struct data_string *reply_ret, struct packet *packet) {
isc_boolean_t inappropriate, has_addrs;
char reply_data[65536];
struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data;
int reply_ofs = (int)((char *)reply->options - (char *)reply);
int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options));
/*
* Basic client message validation.
@@ -4583,7 +4583,7 @@ iterate_over_ia_na(struct data_string *reply_ret,
int iaaddr_is_found;
char reply_data[65536];
struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data;
int reply_ofs = (int)((char *)reply->options - (char *)reply);
int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options));
char status_msg[32];
struct iasubopt *lease;
struct ia_xx *existing_ia_na;
@@ -5555,7 +5555,7 @@ dhcpv6_relay_forw(struct data_string *reply_ret, struct packet *packet) {
sizeof(reply->link_address));
memcpy(reply->peer_address, &packet->dhcpv6_peer_address,
sizeof(reply->peer_address));
reply_ofs = (int)((char *)reply->options - (char *)reply);
reply_ofs = (int)(offsetof(struct dhcpv6_relay_packet, options));
/*
* Get the reply option state.

View File

@@ -30,14 +30,14 @@
#include <isc/md5.h>
HASH_FUNCTIONS(ia, unsigned char *, struct ia_xx, ia_hash_t,
ia_reference, ia_dereference, do_string_hash);
ia_reference, ia_dereference, do_string_hash)
ia_hash_t *ia_na_active;
ia_hash_t *ia_ta_active;
ia_hash_t *ia_pd_active;
HASH_FUNCTIONS(iasubopt, struct in6_addr *, struct iasubopt, iasubopt_hash_t,
iasubopt_reference, iasubopt_dereference, do_string_hash);
iasubopt_reference, iasubopt_dereference, do_string_hash)
struct ipv6_pool **pools;
int num_pools;

View File

@@ -1891,7 +1891,12 @@ class_set_value (omapi_object_t *h,
} else
return DHCP_R_INVALIDARG;
return ISC_R_SUCCESS;
/*
* Currently no way to get here, if we update the above
* code so that we do get here this return needs to be
* uncommented.
* return ISC_R_SUCCESS;
*/
}