Commit efc943be authored by Emilia Kasper's avatar Emilia Kasper
Browse files

MemorySanitizer: address false positive



Explicitly unpoison the result of FD_ZERO

Tests now pass, using -fsanitize=memory

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent a2d0baa2
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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;