OpenVAS Scanner 23.29.0
table_driven_lsc.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Greenbone AG
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later
4 */
5
10
11#ifndef MISC_TABLE_DRIVEN_LSC_H
12#define MISC_TABLE_DRIVEN_LSC_H
13
14#include <glib.h>
15#include <gvm/util/kb.h> // for kb_t
16
20{
21 UNKNOWN, // Unknown
22 RANGE, // Range of version which fixed the package
23 SINGLE, // A single version with a specifier (gt or lt)
24};
25
29{
30 char *version; // a version
31 char *specifier; // a lt or gt specifier
32};
34
38{
39 char *start; // <= the version
40 char *stop; // >= the version
41};
43
47{
48 char *pkg_name; // package name
49 char *install_version; // installed version of the vulnerable package
50 enum fixed_type type; // fixed version type: range or single
51 union
52 {
53 version_range_t *range; // range of vulnerable versions
54 fixed_version_t *version; // version and specifier for the fixed versions
55 };
56};
57
59
63{
64 char *oid; // Advisory OID
65 vuln_pkg_t *pkgs[100]; // list of vulnerable packages, installed version and
66 // fixed versions
67 size_t count; // Count of vulnerable packages this advisory has
68};
69
70typedef struct advisory advisory_t;
71
75{
77 size_t count;
78 size_t max_size;
79};
80typedef struct advisories advisories_t;
81
82void
84
85void
86set_lsc_flag (void);
87
88int
89lsc_has_run (void);
90
91int
92run_table_driven_lsc (const char *, const char *, const char *, const char *,
93 const char *);
94
95char *
96notus_get_response (const char *pkg_list, const char *os);
97
99process_notus_response (const gchar *resp, const size_t len);
100
101#endif // MISC_TABLE_DRIVEN_LSC_H
uint8_t len
Definition nasl_packet_forgery.c:1
Definition table_driven_lsc.h:75
size_t max_size
Definition table_driven_lsc.h:78
advisory_t ** advisories
Definition table_driven_lsc.h:76
size_t count
Definition table_driven_lsc.h:77
Definition table_driven_lsc.h:63
size_t count
Definition table_driven_lsc.h:67
char * oid
Definition table_driven_lsc.h:64
vuln_pkg_t * pkgs[100]
Definition table_driven_lsc.h:65
Fixed version.
Definition table_driven_lsc.h:29
char * specifier
Definition table_driven_lsc.h:31
char * version
Definition table_driven_lsc.h:30
Specify a version range.
Definition table_driven_lsc.h:38
char * stop
Definition table_driven_lsc.h:40
char * start
Definition table_driven_lsc.h:39
Define a vulnerable package.
Definition table_driven_lsc.h:47
fixed_version_t * version
Definition table_driven_lsc.h:54
enum fixed_type type
Definition table_driven_lsc.h:50
version_range_t * range
Definition table_driven_lsc.h:53
char * pkg_name
Definition table_driven_lsc.h:48
char * install_version
Definition table_driven_lsc.h:49
char * notus_get_response(const char *pkg_list, const char *os)
Sent the installed package list and OS to notus.
Definition table_driven_lsc.c:918
struct advisories advisories_t
Definition table_driven_lsc.h:80
fixed_type
Fixed version format.
Definition table_driven_lsc.h:20
@ SINGLE
Definition table_driven_lsc.h:23
@ RANGE
Definition table_driven_lsc.h:22
@ UNKNOWN
Definition table_driven_lsc.h:21
int run_table_driven_lsc(const char *, const char *, const char *, const char *, const char *)
Publish the necessary data to start a Table driven LSC scan.
Definition table_driven_lsc.c:1057
struct advisory advisory_t
Definition table_driven_lsc.h:70
advisories_t * process_notus_response(const gchar *resp, const size_t len)
Process a json object which contains advisories and vulnerable packages.
Definition table_driven_lsc.c:616
int lsc_has_run(void)
Get lsc_flag value.
Definition table_driven_lsc.c:48
struct fixed_version fixed_version_t
Definition table_driven_lsc.h:33
struct vulnerable_pkg vuln_pkg_t
Definition table_driven_lsc.h:58
struct version_range version_range_t
Definition table_driven_lsc.h:42
void set_lsc_flag(void)
Set lsc_flag to 1.
Definition table_driven_lsc.c:40
void advisories_free(advisories_t *advisories)
Free()'s an advisories.
Definition table_driven_lsc.c:549