« Previous | Next » 

Revision 90d7416a

ID90d7416ab13113ccd3891435eea8715c5f503460

Added by David Gibson about 12 years ago

slirp: Fix assertion failure on rejected DHCP requests

The guest network stack might DHCPREQUEST an address that the slirp built
in dhcp server can't let it have - for example if the guest has an old
leases file from another network configuration. In this case the dhcp
server should and does reject the request and prepares to send a DHCPNAK
to the client.

However, in this case the daddr variable in bootp_reply() is set to
0.0.0.0. Shortly afterwards, it unconditionally attempts to pre-insert the
new client address into the ARP table. This causes an assertion failure in
arp_address_add() because of the 0.0.0.0 address.

According to RFC2131, DHCPNAK messages for clients on the same subnet
must be sent to the broadcast address (S3.2, subpoint 2).

Cc: Jan Kiszka <>

Signed-off-by: David Gibson <>
Signed-off-by: Jan Kiszka <>

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences