Whamcloud - gitweb
LU-17161 build: Avoid fortify_memset in OBD_FREE_PTR 59/52559/5
authorShaun Tancheff <shaun.tancheff@hpe.com>
Wed, 18 Oct 2023 07:17:29 +0000 (02:17 -0500)
committerOleg Drokin <green@whamcloud.com>
Fri, 23 Feb 2024 07:11:45 +0000 (07:11 +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.

Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Iced53f22b97ed90e0970625c4fcbaa404054c54a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52559
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/obd_support.h

index 574d907..a2e593e 100644 (file)
@@ -918,7 +918,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