mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:04:43 +01:00
selftests/bpf: Fix array bounds warning in jit_disasm_helpers
Compiler cannot infer upper bound for labels.cnt and warns about potential buffer overflow in snprintf. Add an explicit bounds check (... && i < MAX_LOCAL_LABELS) in the loop condition to fix the warning. Acked-by: Eduard Zingerman <eddyz87@gmail.com> Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev> Link: https://lore.kernel.org/r/20260223190736.649171-18-ihor.solodrai@linux.dev Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
2bb270a0ac
commit
3e711c8e47
1 changed files with 9 additions and 9 deletions
|
|
@ -122,15 +122,15 @@ static int disasm_one_func(FILE *text_out, uint8_t *image, __u32 len)
|
|||
pc += cnt;
|
||||
}
|
||||
qsort(labels.pcs, labels.cnt, sizeof(*labels.pcs), cmp_u32);
|
||||
for (i = 0; i < labels.cnt; ++i)
|
||||
/* gcc is unable to infer upper bound for labels.cnt and assumes
|
||||
* it to be U32_MAX. U32_MAX takes 10 decimal digits.
|
||||
* snprintf below prints into labels.names[*],
|
||||
* which has space only for two digits and a letter.
|
||||
* To avoid truncation warning use (i % MAX_LOCAL_LABELS),
|
||||
* which informs gcc about printed value upper bound.
|
||||
*/
|
||||
snprintf(labels.names[i], sizeof(labels.names[i]), "L%d", i % MAX_LOCAL_LABELS);
|
||||
/* gcc is unable to infer upper bound for labels.cnt and
|
||||
* assumes it to be U32_MAX. U32_MAX takes 10 decimal digits.
|
||||
* snprintf below prints into labels.names[*], which has space
|
||||
* only for two digits and a letter. To avoid truncation
|
||||
* warning use (i < MAX_LOCAL_LABELS), which informs gcc about
|
||||
* printed value upper bound.
|
||||
*/
|
||||
for (i = 0; i < labels.cnt && i < MAX_LOCAL_LABELS; ++i)
|
||||
snprintf(labels.names[i], sizeof(labels.names[i]), "L%d", i);
|
||||
|
||||
/* now print with labels */
|
||||
labels.print_phase = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue