]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: warn if offset reach the maxlen limit when using snprintf
authorHangbin Liu <liuhangbin@gmail.com>
Wed, 20 Nov 2019 08:38:08 +0000 (16:38 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Nov 2019 06:23:36 +0000 (22:23 -0800)
commit51b09205c8382e276ce22808bf623017e2b5b98f
tree74a2d5c284838dca140388d71a7f226057aa9b36
parent1cd744a64e3c65f1186b7f17abf28d476ee2531d
tcp: warn if offset reach the maxlen limit when using snprintf

snprintf returns the number of chars that would be written, not number
of chars that were actually written. As such, 'offs' may get larger than
'tbl.maxlen', causing the 'tbl.maxlen - offs' being < 0, and since the
parameter is size_t, it would overflow.

Since using scnprintf may hide the limit error, while the buffer is still
enough now, let's just add a WARN_ON_ONCE in case it reach the limit
in future.

v2: Use WARN_ON_ONCE as Jiri and Eric suggested.

Suggested-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_cong.c
net/ipv4/tcp_ulp.c