Skip to content

Annotate atomics for signed integer wrap-around

Kees Cook linux-arch linux-arm-kernel linux-hardening lkml netdev 1 version NAK

Status from this message: NAK

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 17 repliesNAK

Patches in v1

#Subject and filesSizeRepliesApplied
1/4locking/atomic/x86: Silence intentional wrapping additionarch/x86/include/asm/atomic.h arch/x86/include/asm/atomic64_32.h arch/x86/include/asm/atomic64_64.h+4 -315 replies
2/4arm64: atomics: lse: Silence intentional wrapping additionarch/arm64/include/asm/atomic_lse.h+6 -42 replies
3/4locking/atomic: Annotate generic atomics with wrappinginclude/asm-generic/atomic.h include/asm-generic/atomic64.h include/linux/atomic/atomic-arch-fallback.h +10 more+32 -260 replies
4/4ipv4: Silence intentional wrapping additioninclude/net/ip.h net/ipv4/route.c+7 -70 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4] Annotate atomics for signed integer wrap-around

Hi,

As part of enabling the signed integer overflow sanitizer for production use, we have to annotated the atomics which expect to use wrapping signed values. Do this for x86, arm64, and the fallbacks. Additionally annotate the first place anyone will trip over signed integer wrap-around: ipv4, which has traditionally included the comment hint about how to debug sanitizer issues.

Since this touches 2 architectures and netdev, I think it might be easiest if I carry this in the hardening tree, or maybe via the netdev tree. Thoughts?

Thanks!

-Kees

Kees Cook (4):
locking/atomic/x86: Silence intentional wrapping addition
arm64: atomics: lse: Silence intentional wrapping addition locking/atomic: Annotate generic atomics with wrapping
ipv4: Silence intentional wrapping addition

 arch/arm64/include/asm/atomic_lse.h          | 10 ++++++----
 arch/x86/include/asm/atomic.h                |  3 ++-
 arch/x86/include/asm/atomic64_32.h           |  2 +-
 arch/x86/include/asm/atomic64_64.h           |  2 +-
 include/asm-generic/atomic.h                 |  6 +++---
 include/asm-generic/atomic64.h               |  6 +++---
 include/linux/atomic/atomic-arch-fallback.h  | 19 ++++++++++---------
 include/linux/atomic/atomic-instrumented.h   |  3 ++-
 include/linux/atomic/atomic-long.h           |  3 ++-
 include/net/ip.h                             |  4 ++--
 lib/atomic64.c                               | 10 +++++-----
 net/ipv4/route.c                             | 10 +++++-----
 scripts/atomic/fallbacks/dec_if_positive     |  2 +-
 scripts/atomic/fallbacks/dec_unless_positive |  2 +-
 scripts/atomic/fallbacks/fetch_add_unless    |  2 +-
 scripts/atomic/fallbacks/inc_unless_negative |  2 +-
 scripts/atomic/gen-atomic-fallback.sh        |  1 +
 scripts/atomic/gen-atomic-instrumented.sh    |  1 +
 scripts/atomic/gen-atomic-long.sh            |  1 +
 19 files changed, 49 insertions(+), 40 deletions(-)
Signature · 1 line
2.34.1