diff options
author | Emilia Kasper <emilia@openssl.org> | 2016-02-22 16:58:36 +0100 |
---|---|---|
committer | Emilia Kasper <emilia@openssl.org> | 2016-02-22 18:30:11 +0100 |
commit | efc943be56df26ceac2504d57c4ecbe2bb113c97 (patch) | |
tree | 1e625958049cc80a5b5d0b60a0015c0bd8873ad6 /apps/s_client.c | |
parent | a2d0baa2d931feae7f820d4594528894fd4a46cb (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/s_client.c')
-rw-r--r-- | apps/s_client.c | 16 |
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; |