Commit 58250ae3 authored by Fedor Tokarev's avatar Fedor Tokarev Committed by Andrii Nakryiko

bpf: btf: Fix vsnprintf return value check

vsnprintf returns the number of characters which would have been written if
enough space had been available, excluding the terminating null byte. Thus,
the return value of 'len_left' means that the last character has been
dropped.
Signed-off-by: default avatarFedor Tokarev <ftokarev@gmail.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Acked-by: default avatarAlan Maguire <alan.maguire@oracle.com>
Link: https://lore.kernel.org/bpf/20220711211317.GA1143610@laptop
parent 64893e83
...@@ -6643,7 +6643,7 @@ static void btf_snprintf_show(struct btf_show *show, const char *fmt, ...@@ -6643,7 +6643,7 @@ static void btf_snprintf_show(struct btf_show *show, const char *fmt,
if (len < 0) { if (len < 0) {
ssnprintf->len_left = 0; ssnprintf->len_left = 0;
ssnprintf->len = len; ssnprintf->len = len;
} else if (len > ssnprintf->len_left) { } else if (len >= ssnprintf->len_left) {
/* no space, drive on to get length we would have written */ /* no space, drive on to get length we would have written */
ssnprintf->len_left = 0; ssnprintf->len_left = 0;
ssnprintf->len += len; ssnprintf->len += len;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment