commit c76100535064ef27dad8618b339c2a1f87dff21b
parent a7e168e7cd42804131233c251cb30ab7f502d034
Author: finwo <finwo@pm.me>
Date: Fri, 1 May 2026 23:53:30 +0200
per-cve pass/fail output
Diffstat:
4 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/src/detector/cve-2026-31431.c b/src/detector/cve-2026-31431.c
@@ -6,13 +6,12 @@
#include "setup.h"
-void detector_cve_2026_31431(int num) {
- detector_total++;
+int detector_cve_2026_31431(int num) {
int fd = socket(AF_ALG, SOCK_SEQPACKET, 0);
if (fd < 0) {
perror("socket");
- return;
+ return 0;
}
struct sockaddr_alg sa;
@@ -23,12 +22,10 @@ void detector_cve_2026_31431(int num) {
strcpy((char*)sa.salg_name,"authencesn(hmac(sha256),cbc(aes))");
if (bind(fd,(struct sockaddr*)&sa, sizeof(sa)) < 0) {
- detector_pass++;
- return;
+ return 0;
}
- detector_fail++;
- return;
+ return 1;
}
__attribute__((constructor))
diff --git a/src/detector/setup.c b/src/detector/setup.c
@@ -10,7 +10,7 @@ int detector_total = 0;
int detector_pass = 0;
int detector_fail = 0;
-void detector_queue_append(const char *name, void (*fn)(int)) {
+void detector_queue_append(const char *name, int (*fn)(int)) {
// Initial queue initialize
if (!detector_queue_cap) {
diff --git a/src/detector/setup.h b/src/detector/setup.h
@@ -8,7 +8,7 @@ extern "C" {
#include <stddef.h>
struct detector_queue_entry {
- void (*handler)(int);
+ int (*handler)(int);
const char *name;
};
@@ -19,7 +19,7 @@ extern int detector_total;
extern int detector_pass;
extern int detector_fail;
-void detector_queue_append(const char *name, void (*fn)(int));
+void detector_queue_append(const char *name, int (*fn)(int));
#ifdef __cplusplus
} // extern "C"
diff --git a/src/main.c b/src/main.c
@@ -3,15 +3,20 @@
#include "detector/setup.h"
int main() {
- int i = 0;
-
- for (int i = 0 ; i < detector_queue_length ; i++) {
+ for (int i = 0; i < detector_queue_length; i++) {
struct detector_queue_entry *entry = detector_queue[i];
- entry->handler(i);
+ int result = entry->handler(i);
+ detector_total++;
+ if (result == 0) {
+ printf("[pass] %s\n", entry->name);
+ detector_pass++;
+ } else {
+ printf("[fail] %s\n", entry->name);
+ detector_fail++;
+ }
}
printf("====[ REPORT ]====\n");
-
printf("pass: %d\n", detector_pass);
printf("fail: %d\n", detector_fail);
}