From: W.C.A. Wijngaards Date: Wed, 8 Jan 2020 11:58:07 +0000 (+0100) Subject: - And update for more spare space. X-Git-Tag: release-1.10.0rc1~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4e199ecca8801ac51d4b0111f18b0e78c6a7f73;p=thirdparty%2Funbound.git - And update for more spare space. --- diff --git a/doc/Changelog b/doc/Changelog index f1d8762ee..d84e4ad58 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,7 +3,7 @@ - Fix out-of-bounds null-byte write in sldns_bget_token_par while parsing type WKS, reported by Luis Merino from X41 D-Sec. - Updated sldns_bget_token_par fix for also space for the zero - delimiter after the character. + delimiter after the character. And update for more spare space. 6 January 2020: George - Downgrade compat/getentropy_solaris.c to version 1.4 from OpenBSD. diff --git a/sldns/parse.c b/sldns/parse.c index 832e643c6..f4de8602f 100644 --- a/sldns/parse.c +++ b/sldns/parse.c @@ -120,7 +120,7 @@ sldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *l if (line_nr) { *line_nr = *line_nr + 1; } - if (limit > 0 && (i+1 > limit || (size_t)(t-token)+1 > limit)) { + if (limit > 0 && (i+1 >= limit || (size_t)(t-token)+1 >= limit)) { *t = '\0'; return -1; } @@ -142,7 +142,7 @@ sldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *l i++; } /* is there space for the character and the zero after it */ - if (limit > 0 && (i+1 > limit || (size_t)(t-token)+1 > limit)) { + if (limit > 0 && (i+1 >= limit || (size_t)(t-token)+1 >= limit)) { *t = '\0'; return -1; } @@ -328,7 +328,7 @@ sldns_bget_token_par(sldns_buffer *b, char *token, const char *delim, /* do not write ' ' if we want to skip spaces */ if(!(skipw && (strchr(skipw, c)||strchr(skipw, ' ')))) { /* check for space for the space character and a zero delimiter after that. */ - if (limit > 0 && (i+1 > limit || (size_t)(t-token)+1 > limit)) { + if (limit > 0 && (i+1 >= limit || (size_t)(t-token)+1 >= limit)) { *t = '\0'; return -1; } @@ -355,7 +355,7 @@ sldns_bget_token_par(sldns_buffer *b, char *token, const char *delim, } i++; - if (limit > 0 && (i+1 > limit || (size_t)(t-token)+1 > limit)) { + if (limit > 0 && (i+1 >= limit || (size_t)(t-token)+1 >= limit)) { *t = '\0'; return -1; }