https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115735
Bug ID: 115735
Summary: Analyzer misses trivial syslog() call in signal
handler
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: analyzer
Assignee: dmalcolm at gcc dot gnu.org
Reporter: sjames at gcc dot gnu.org
Target Milestone: ---
Poking at this for obvious reasons (openssh CVE-2024-638;
https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt).
-fanalyzer seems to miss a trivial syslog() call in a signal handler, not
emitting -Wanalyzer-unsafe-call-within-signal-handler:
```
#include <signal.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
void handle_the_signals() {
syslog(0, "Hello\n"); /* Expected
-Wanalyzer-unsafe-call-within-signal-handler */
}
int main(void) {
struct sigaction act = {0};
act.sa_sigaction = &handle_the_signals;
if (sigaction(SIGSEGV, &act, NULL) == -1) {
perror("sigaction");
exit(EXIT_FAILURE);
}
raise(SIGSEGV);
}
```
Am I missing something?