diff --git a/top/top.c b/top/top.c
index 60613ca9..eefa6358 100644
--- a/top/top.c
+++ b/top/top.c
@@ -3112,6 +3112,7 @@ static void before (char *me) {
 #define SIGRTMAX 32
 #endif
    // lastly, establish a robust signals environment
+   memset(&sa, 0, sizeof(sa));
    sigemptyset(&sa.sa_mask);
    // with user position preserved through SIGWINCH, we must avoid SA_RESTART
    sa.sa_flags = 0;