summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorEmilia Kasper <emilia@openssl.org>2016-02-22 16:58:36 +0100
committerEmilia Kasper <emilia@openssl.org>2016-02-22 18:30:11 +0100
commitefc943be56df26ceac2504d57c4ecbe2bb113c97 (patch)
tree1e625958049cc80a5b5d0b60a0015c0bd8873ad6 /apps
parenta2d0baa2d931feae7f820d4594528894fd4a46cb (diff)
MemorySanitizer: address false positive
Explicitly unpoison the result of FD_ZERO Tests now pass, using -fsanitize=memory Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'apps')
-rw-r--r--apps/s_client.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/apps/s_client.c b/apps/s_client.c
index 9d0b52a10f..b533780e28 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -173,6 +173,12 @@ typedef unsigned int u_int;
# undef FIONBIO
#endif
+#if defined(__has_feature)
+# if __has_feature(memory_sanitizer)
+# include <sanitizer/msan_interface.h>
+# endif
+#endif
+
#undef BUFSIZZ
#define BUFSIZZ 1024*8
#define S_CLIENT_IRC_READ_TIMEOUT 8
@@ -905,6 +911,16 @@ int s_client_main(int argc, char **argv)
SRP_ARG srp_arg = { NULL, NULL, 0, 0, 0, 1024 };
#endif
+ FD_ZERO(&readfds);
+ FD_ZERO(&writefds);
+/* Known false-positive of MemorySanitizer. */
+#if defined(__has_feature)
+# if __has_feature(memory_sanitizer)
+ __msan_unpoison(&readfds, sizeof(readfds));
+ __msan_unpoison(&writefds, sizeof(writefds));
+# endif
+#endif
+
prog = opt_progname(argv[0]);
c_quiet = 0;
c_ign_eof = 0;