From: Emilia Kasper Date: Mon, 22 Feb 2016 15:58:36 +0000 (+0100) Subject: MemorySanitizer: address false positive X-Git-Tag: OpenSSL_1_1_0-pre4~544 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=efc943be56df26ceac2504d57c4ecbe2bb113c97;p=oweals%2Fopenssl.git MemorySanitizer: address false positive Explicitly unpoison the result of FD_ZERO Tests now pass, using -fsanitize=memory Reviewed-by: Rich Salz --- 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 +# 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;