From: Wouter Wijngaards Date: Tue, 18 Feb 2014 09:58:51 +0000 (+0000) Subject: review commit. X-Git-Tag: release-1.4.22rc1~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18d5ace481a5e3a13ef7111b0936f2faad360d8f;p=thirdparty%2Funbound.git review commit. git-svn-id: file:///svn/unbound/trunk@3087 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/ldns/str2wire.c b/ldns/str2wire.c index 707f3feb2..92eefa851 100644 --- a/ldns/str2wire.c +++ b/ldns/str2wire.c @@ -1617,19 +1617,40 @@ int sldns_str2wire_wks_buf(const char* str, uint8_t* rd, size_t* len) if(serv) serv_port=(int)ntohs((uint16_t)serv->s_port); else { serv_port = atoi(token); - if(serv_port == 0 && strcmp(token, "0") != 0) + if(serv_port == 0 && strcmp(token, "0") != 0) { +#ifdef HAVE_ENDSERVENT + endservent(); +#endif +#ifdef HAVE_ENDPROTOENT + endprotoent(); +#endif return RET_ERR(LDNS_WIREPARSE_ERR_SYNTAX, sldns_buffer_position(&strbuf)); - if(serv_port < 0 || serv_port > 65535) + } + if(serv_port < 0 || serv_port > 65535) { +#ifdef HAVE_ENDSERVENT + endservent(); +#endif +#ifdef HAVE_ENDPROTOENT + endprotoent(); +#endif return RET_ERR(LDNS_WIREPARSE_ERR_SYNTAX, sldns_buffer_position(&strbuf)); + } } if(rd_len < 1+serv_port/8+1) { /* bitmap is larger, init new bytes at 0 */ - if(*len < 1+(size_t)serv_port/8+1) + if(*len < 1+(size_t)serv_port/8+1) { +#ifdef HAVE_ENDSERVENT + endservent(); +#endif +#ifdef HAVE_ENDPROTOENT + endprotoent(); +#endif return RET_ERR( LDNS_WIREPARSE_ERR_BUFFER_TOO_SMALL, sldns_buffer_position(&strbuf)); + } memset(rd+rd_len, 0, 1+(size_t)serv_port/8+1-rd_len); rd_len = 1+serv_port/8+1; }