bpf: extend bpf_trace_printk to support %i
Currently, bpf_trace_printk does not support common formatting symbol '%i' however vsprintf does and is what eventually gets called by bpf helper. If users are used to '%i' and currently make use of it, then bpf_trace_printk will just return with error without dumping anything to the trace pipe, so just add support for '%i' to the helper. Signed-off-by: John Fastabend <john.fastabend@gmail.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9780c0ab1a
commit
7bda4b40c5
@ -122,8 +122,8 @@ static const struct bpf_func_proto *bpf_get_probe_write_proto(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* limited trace_printk()
|
* Only limited trace_printk() conversion specifiers allowed:
|
||||||
* only %d %u %x %ld %lu %lx %lld %llu %llx %p %s conversion specifiers allowed
|
* %d %i %u %x %ld %li %lu %lx %lld %lli %llu %llx %p %s
|
||||||
*/
|
*/
|
||||||
BPF_CALL_5(bpf_trace_printk, char *, fmt, u32, fmt_size, u64, arg1,
|
BPF_CALL_5(bpf_trace_printk, char *, fmt, u32, fmt_size, u64, arg1,
|
||||||
u64, arg2, u64, arg3)
|
u64, arg2, u64, arg3)
|
||||||
@ -198,7 +198,8 @@ BPF_CALL_5(bpf_trace_printk, char *, fmt, u32, fmt_size, u64, arg1,
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fmt[i] != 'd' && fmt[i] != 'u' && fmt[i] != 'x')
|
if (fmt[i] != 'i' && fmt[i] != 'd' &&
|
||||||
|
fmt[i] != 'u' && fmt[i] != 'x')
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
fmt_cnt++;
|
fmt_cnt++;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user