mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-06-11 09:40:05 -04:00
check_dhcp: Fix handling of "pad" options
Don't let "pad" options[*] terminate the parsing of DHCP options. This bug was triggered by using check_dhcp against Windows 2003 DHCP servers (see #3503921). [*] Cf. RFC 2132, 3.1.
This commit is contained in:
parent
a80eafbf9c
commit
f091d59e0f
2 changed files with 5 additions and 3 deletions
1
NEWS
1
NEWS
|
|
@ -24,6 +24,7 @@ This file documents the major additions and syntax changes between releases.
|
|||
Fix segfault in check_host when hostname returns multiple IP addresses (Sebastian Harl)
|
||||
Fix check_smtp and check_tcp where duplicate messages were displayed for certificate errors
|
||||
Fix check_ping's parsing of the output of Debian's ping6(1) implementation (#1894850 - Matej Vela)
|
||||
Fix a check_dhcp bug which was triggered by using it to check Windows 2003 DHCP servers (#3503921)
|
||||
Disable RFC4507 support, to work around SSL negotiation issues with (at least) some Tomcat versions
|
||||
|
||||
1.4.15 27th July 2010
|
||||
|
|
|
|||
|
|
@ -839,8 +839,7 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){
|
|||
/* process all DHCP options present in the packet */
|
||||
for(x=4;x<MAX_DHCP_OPTIONS_LENGTH;){
|
||||
|
||||
/* end of options (0 is really just a pad, but bail out anyway) */
|
||||
if((int)offer_packet->options[x]==-1 || (int)offer_packet->options[x]==0)
|
||||
if((int)offer_packet->options[x]==-1)
|
||||
break;
|
||||
|
||||
/* get option type */
|
||||
|
|
@ -872,7 +871,9 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){
|
|||
}
|
||||
|
||||
/* skip option data we're ignoring */
|
||||
if(option_type!=DHCP_OPTION_REBINDING_TIME)
|
||||
if(option_type==0) /* "pad" option, see RFC 2132 (3.1) */
|
||||
x+=1;
|
||||
else
|
||||
x+=option_length;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue