cve-toolkit

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

setup.c (1180B)


      1 #include "setup.h"
      2 
      3 #include <stdlib.h>
      4 
      5 struct detector_queue_entry **detector_queue;
      6 int                           detector_queue_cap    = 0;
      7 int                           detector_queue_length = 0;
      8 
      9 int detector_total = 0;
     10 int detector_pass  = 0;
     11 int detector_fail  = 0;
     12 
     13 struct cve_context g_cve_ctx = {0};
     14 
     15 void detector_queue_append(const char *name, const char *alias, const char *remediation,
     16                            int (*fn)(struct cve_context *ctx)) {
     17   // Initial queue initialize
     18   if (!detector_queue_cap) {
     19     detector_queue     = malloc(sizeof(void *));
     20     detector_queue_cap = 1;
     21   }
     22 
     23   // Grow queue if needed
     24   if ((detector_queue_length + 1) > detector_queue_cap) {
     25     detector_queue_cap *= 2;
     26     detector_queue = realloc(detector_queue, detector_queue_cap * sizeof(void *));
     27   }
     28 
     29   // Build new entry
     30   struct detector_queue_entry *entry = calloc(1, sizeof(struct detector_queue_entry));
     31   entry->handler                     = fn;
     32   entry->name                        = name;
     33   entry->alias                       = alias;
     34   entry->remediation                 = remediation;
     35 
     36   // Append fn to queue
     37   detector_queue[detector_queue_length++] = entry;
     38 }