Whamcloud - gitweb
LU-17161 build: Avoid fortify_memset in OBD_FREE_PTR
authorShaun Tancheff <shaun.tancheff@hpe.com>
Thu, 15 Feb 2024 01:26:00 +0000 (17:26 -0800)
committerAndreas Dilger <adilger@whamcloud.com>
Sun, 3 Mar 2024 10:17:43 +0000 (10:17 +0000)
OBD_FREE_PTR will optionally clear the about to be free()d
memory.

Unfortunately fortify_memset_chk() hits some false positives.

We can use __underlying_memset() if it is defined, to avoid
the fortify_memset_chk.

Lustre-change: https://review.whamcloud.com/52559
Lustre-commit: 58cc8cf98e37e9d8149d5f605a75d56f2cd4eb70

Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Iced53f22b97ed90e0970625c4fcbaa404054c54a
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/53956
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/include/obd_support.h

index 3fa8521..ee0d7c2 100644 (file)
@@ -936,7 +936,11 @@ do {                                                                             \
 #define POISON(ptr, c, s) do {} while (0)
 #define POISON_PTR(ptr)  ((void)0)
 #else
+#ifdef __underlying_memset
+#define POISON(ptr, c, s) __underlying_memset(ptr, c, s)
+#else
 #define POISON(ptr, c, s) memset(ptr, c, s)
+#endif
 #define POISON_PTR(ptr)  (ptr) = (void *)0xdeadbeef
 #endif