summaryrefslogtreecommitdiff
path: root/lib/string.c
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2022-11-21 11:03:13 +0300
committerThomas Zimmermann <tzimmermann@suse.de>2022-11-21 11:03:13 +0300
commit29583dfcd2dd72c766422bd05c16f06c6b1fb356 (patch)
treea35bc4aa5e84ce6ae0df1b43ca431f6cd8f38997 /lib/string.c
parent39dd0cc2e5bd0d5188dd69f27e18783cea7ff06a (diff)
parent4e291f2f585313efa5200cce655e17c94906e50a (diff)
downloadlinux-29583dfcd2dd72c766422bd05c16f06c6b1fb356.tar.xz
Merge drm/drm-next into drm-misc-next-fixes
Backmerging to update drm-misc-next-fixes for the final phase of the release cycle. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Diffstat (limited to 'lib/string.c')
-rw-r--r--lib/string.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/string.c b/lib/string.c
index 6f334420f687..3371d26a0e39 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -197,6 +197,14 @@ ssize_t strscpy(char *dest, const char *src, size_t count)
max = 0;
#endif
+ /*
+ * read_word_at_a_time() below may read uninitialized bytes after the
+ * trailing zero and use them in comparisons. Disable this optimization
+ * under KMSAN to prevent false positive reports.
+ */
+ if (IS_ENABLED(CONFIG_KMSAN))
+ max = 0;
+
while (max >= sizeof(unsigned long)) {
unsigned long c, data;