cve-toolkit

CVE helper toolkit
git clone git://git.finwo.net/app/cve-toolkit
Log | Files | Refs | README

commit c76100535064ef27dad8618b339c2a1f87dff21b
parent a7e168e7cd42804131233c251cb30ab7f502d034
Author: finwo <finwo@pm.me>
Date:   Fri,  1 May 2026 23:53:30 +0200

per-cve pass/fail output

Diffstat:
Msrc/detector/cve-2026-31431.c | 11++++-------
Msrc/detector/setup.c | 2+-
Msrc/detector/setup.h | 4++--
Msrc/main.c | 15++++++++++-----
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); }