bpf, doc: Correct one wrong value in "Register value tracking"
Subsystems (3)
PATCH 1/1 bpf, doc: Correct one wrong value in "Register value tracking"
If we then OR this with 0x40, then the value of 6th bit (0th is first bit) become known, so the right mask is 0xbf instead of 0xcf.
Signed-off-by Wang YanQing <[email protected]>
--- Documentation/networking/filter.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/networking/filter.txt +1 -1
@@ -1134,7 +1134,7 @@ The verifier's knowledge about the variable offset consists of: mask and value; no bit should ever be 1 in both. For example, if a byte is read into a register from memory, the register's top 56 bits are known zero, while the low 8 are unknown - which is represented as the tnum (0x0; 0xff). If we -then OR this with 0x40, we get (0x40; 0xcf), then if we add 1 we get (0x0; +then OR this with 0x40, we get (0x40; 0xbf), then if we add 1 we get (0x0; 0x1ff), because of potential carries. Besides arithmetic, the register state can also be updated by conditional branches. For instance, if a SCALAR_VALUE is compared > 8, in the 'true' branch
Signature · 1 line
1.8.5.6.2.g3d8a54e.dirty
Quoted 13 lines · Wang YanQing
If we then OR this with
0x40, then the value of 6th bit (0th is first bit) become known, so the right mask is0xbfinstead of0xcf.Signed-off-by Wang YanQing <[email protected]>--- Documentation/networking/filter.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)Documentation/networking/filter.txt +0
-0
Documentation/networking/filter.txt The verifier's knowledge about the variable offset consists of: · line 1140
Quoted 8 lines
Documentation/networking/filter.txt +1
-1@@ -1134,7 +1134,7 @@ The verifier's knowledge about the variable offset consists of: mask and value; no bit should ever be 1 in both. For example, if a byte is read into a register from memory, the register's top 56 bits are known zero, while the low 8 are unknown - which is represented as the tnum (0x0; 0xff). If we -then OR this with 0x40, we get (0x40; 0xcf), then if we add 1 we get (0x0; +then OR this with 0x40, we get (0x40; 0xbf), then if we add 1 we get (0x0; 0x1ff), because of potential carries. Besides arithmetic, the register state can also be updated by conditional branches. For instance, if a SCALAR_VALUE is compared > 8, in the 'true' branch
Acked-by Edward Cree <[email protected]>
Daniel Borkmann
AppliedQuoted 4 lines · Wang YanQing
If we then OR this with
0x40, then the value of 6th bit (0th is first bit) become known, so the right mask is0xbfinstead of0xcf.Signed-off-by Wang YanQing <[email protected]>
Applied to bpf-next, thanks Wang!