fix possible access to uninitialized memory in shgetc (via scanf)
[musl] / src / signal / sigandset.c
index f9204c4..974186f 100644 (file)
@@ -1,9 +1,9 @@
 #define _GNU_SOURCE
 #include <signal.h>
 
-#define SST_SIZE (_NSIG/8)
+#define SST_SIZE (_NSIG/8/sizeof(long))
 
-int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right)
+int sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right)
 {
        unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
        for(; i < SST_SIZE; i++) d[i] = l[i] & r[i];