Skip to content

Commit

Permalink
[dhcp] Allow DHCP non-option settings to be cleared
Browse files Browse the repository at this point in the history
dhcppkt_store() is supposed to clear the setting if passed NULL for the
setting data.  In the case of fixed-location fields (e.g. client IP
address), this requires setting the content of the field to all-zeros.
  • Loading branch information
Michael Brown committed Jul 8, 2008
1 parent 3ad348e commit 2df682c
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/net/dhcppkt.c
Expand Up @@ -138,12 +138,15 @@ find_dhcp_packet_field ( unsigned int tag ) {
int dhcppkt_store ( struct dhcp_packet *dhcppkt, unsigned int tag,
const void *data, size_t len ) {
struct dhcp_packet_field *field;
void *field_data;
int rc;

/* If this is a special field, fill it in */
if ( ( field = find_dhcp_packet_field ( tag ) ) != NULL ) {
if ( len > field->len )
return -ENOSPC;
field_data = dhcp_packet_field ( dhcppkt->dhcphdr, field );
memset ( field_data, 0, field->len );
memcpy ( dhcp_packet_field ( dhcppkt->dhcphdr, field ),
data, len );
return 0;
Expand Down

0 comments on commit 2df682c

Please sign in to comment.