Skip to content

Commit 0cd986a

Browse files
saddamr3eedsiper
authored andcommitted
in_tail: fix out-of-bounds read in unesc_ends_with_nl
An empty docker log message reaches unesc_ends_with_nl with len 0, so flb_unescape_string returns 0 and unesc[unesc_len - 1] reads one byte before the heap buffer. Guard the index on unesc_len. Signed-off-by: saddamr3e <saddamr3e@gmail.com>
1 parent 1f3110f commit 0cd986a

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

plugins/in_tail/tail_dockermode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ static int unesc_ends_with_nl(char *str, size_t len)
190190
return FLB_FALSE;
191191
}
192192
unesc_len = flb_unescape_string(str, len, &unesc);
193-
nl = unesc[unesc_len - 1] == '\n';
193+
nl = unesc_len > 0 && unesc[unesc_len - 1] == '\n';
194194
flb_free(unesc);
195195
return nl;
196196
}

0 commit comments

Comments
 (0)