bpf/verifier: track signed and unsigned min/max values
authorEdward Cree <ecree@solarflare.com>
Mon, 7 Aug 2017 14:26:36 +0000 (15:26 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Aug 2017 00:51:34 +0000 (17:51 -0700)
commitb03c9f9fdc37dab81ea04d5dacdc5995d4c224c2
tree864f5f7e43fbcba5dcc2953ee84d9c1470373d59
parentf1174f77b50c94eecaa658fdc56fa69b421de4b8
bpf/verifier: track signed and unsigned min/max values

Allows us to, sometimes, combine information from a signed check of one
 bound and an unsigned check of the other.
We now track the full range of possible values, rather than restricting
 ourselves to [0, 1<<30) and considering anything beyond that as
 unknown.  While this is probably not necessary, it makes the code more
 straightforward and symmetrical between signed and unsigned bounds.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/bpf_verifier.h
include/linux/tnum.h
kernel/bpf/tnum.c
kernel/bpf/verifier.c