summaryrefslogtreecommitdiff
path: root/sldns/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'sldns/parse.c')
-rw-r--r--sldns/parse.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sldns/parse.c b/sldns/parse.c
index b62c405977561..b30264e88e794 100644
--- a/sldns/parse.c
+++ b/sldns/parse.c
@@ -325,8 +325,14 @@ sldns_bget_token_par(sldns_buffer *b, char *token, const char *delim,
if (c == '\n' && p != 0) {
/* in parentheses */
/* do not write ' ' if we want to skip spaces */
- if(!(skipw && (strchr(skipw, c)||strchr(skipw, ' '))))
+ if(!(skipw && (strchr(skipw, c)||strchr(skipw, ' ')))) {
+ /* check for space for the space character */
+ if (limit > 0 && (i >= limit || (size_t)(t-token) >= limit)) {
+ *t = '\0';
+ return -1;
+ }
*t++ = ' ';
+ }
lc = c;
continue;
}