From 53215930450a3ac332ff94c405c8bc794c86ad98 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 22:25:57 +0200 Subject: [PATCH 01/11] Remove handling of allinfo type case for get_info. --- src/gmp.c | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/src/gmp.c b/src/gmp.c index d8f36e2c6..718a24832 100644 --- a/src/gmp.c +++ b/src/gmp.c @@ -14166,8 +14166,6 @@ handle_get_info (gmp_parser_t *gmp_parser, GError **error) name = g_strdup ("DFN-CERT"); else if (strcmp (get_info_data->type, "nvt") == 0) name = g_strdup ("NVT"); - else if (strcmp (get_info_data->type, "allinfo") == 0) - name = g_strdup ("All SecInfo"); else { if (send_find_error_to_client ("get_info", "type", @@ -14273,12 +14271,6 @@ handle_get_info (gmp_parser_t *gmp_parser, GError **error) info_count = dfn_cert_adv_info_count; get_info_data->get.subtype = g_strdup ("dfn_cert_adv"); } - else if (g_strcmp0 ("allinfo", get_info_data->type) == 0) - { - init_info_iterator = init_all_info_iterator; - info_count = all_info_count; - get_info_data->get.subtype = g_strdup ("allinfo"); - } else { if (send_find_error_to_client ("get_info", "type", @@ -14542,18 +14534,6 @@ handle_get_info (gmp_parser_t *gmp_parser, GError **error) return; } } - else if (g_strcmp0 ("allinfo", get_info_data->type) == 0) - { - const char *extra = all_info_iterator_extra (&info); - xml_string_append (result, - "" - "%s" - "%s" - "%s", - all_info_iterator_type (&info), - extra ? extra : "", - all_info_iterator_severity (&info)); - } /* Append raw data if full details are requested */ @@ -14587,12 +14567,9 @@ handle_get_info (gmp_parser_t *gmp_parser, GError **error) ? info_name_count (get_info_data->type, get_info_data->name) : info_count (&get_info_data->get)); - if (strcmp (get_info_data->type, "allinfo")) - SEND_GET_END ("info", &get_info_data->get, count, filtered); - else - send_get_end ("info", &get_info_data->get, count, filtered, - total_info_count (&get_info_data->get, 0), - gmp_parser->client_writer, gmp_parser->client_writer_data); + send_get_end ("info", &get_info_data->get, count, filtered, + total_info_count (&get_info_data->get, 0), + gmp_parser->client_writer, gmp_parser->client_writer_data); get_info_data_reset (get_info_data); set_client_state (CLIENT_AUTHENTIC); From 42f5cda3ac754204e34d33b8527988c4b6bd1d36 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 22:34:15 +0200 Subject: [PATCH 02/11] Remove now unused all_info_count(). --- src/manage_sql_secinfo.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/manage_sql_secinfo.c b/src/manage_sql_secinfo.c index 58889b229..5e3cd6430 100644 --- a/src/manage_sql_secinfo.c +++ b/src/manage_sql_secinfo.c @@ -1114,19 +1114,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t *iterator, const char *oid, /* All SecInfo data. */ -/** - * @brief Count number of SecInfo entries. - * - * @param[in] get GET params. - * - * @return Total number of SecInfo entries in filtered set. - */ -int -all_info_count (const get_data_t *get) -{ - return total_info_count (get, 1); -} - /** * @brief Count number of all SecInfo entries. * From e4268f9e0c993b33afd118e9ffca6a82e17d7a16 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 22:45:16 +0200 Subject: [PATCH 03/11] Fix previous commit and use correct clause. --- src/gmp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gmp.c b/src/gmp.c index 718a24832..36178d16b 100644 --- a/src/gmp.c +++ b/src/gmp.c @@ -14567,9 +14567,7 @@ handle_get_info (gmp_parser_t *gmp_parser, GError **error) ? info_name_count (get_info_data->type, get_info_data->name) : info_count (&get_info_data->get)); - send_get_end ("info", &get_info_data->get, count, filtered, - total_info_count (&get_info_data->get, 0), - gmp_parser->client_writer, gmp_parser->client_writer_data); + SEND_GET_END ("info", &get_info_data->get, count, filtered); get_info_data_reset (get_info_data); set_client_state (CLIENT_AUTHENTIC); From ebefd5e0664b87c0a1908e14a0e639cdcc61b621 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 22:50:11 +0200 Subject: [PATCH 04/11] Remove now unused total_info_count(). --- src/manage.h | 6 ------ src/manage_sql_secinfo.c | 46 ---------------------------------------- 2 files changed, 52 deletions(-) diff --git a/src/manage.h b/src/manage.h index dbd46efb3..d92542d54 100644 --- a/src/manage.h +++ b/src/manage.h @@ -3827,12 +3827,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t*, const char*, int, const char*); /* All SecInfo Data */ -int -all_info_count (const get_data_t *); - -int -total_info_count (const get_data_t *, int); - int init_all_info_iterator (iterator_t*, get_data_t*, const char*); diff --git a/src/manage_sql_secinfo.c b/src/manage_sql_secinfo.c index 5e3cd6430..b42044e86 100644 --- a/src/manage_sql_secinfo.c +++ b/src/manage_sql_secinfo.c @@ -1114,52 +1114,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t *iterator, const char *oid, /* All SecInfo data. */ -/** - * @brief Count number of all SecInfo entries. - * - * @param[in] get GET params. - * @param[in] filtered Whether to count entries in filtered set only. - * - * @return Total number of SecInfo entries. - */ -int -total_info_count (const get_data_t *get, int filtered) -{ - gchar *clause; - - if (filtered) - { - static const char *filter_columns[] = ALL_INFO_ITERATOR_FILTER_COLUMNS; - static column_t select_columns[] = ALL_INFO_ITERATOR_COLUMNS; - gchar *filter; - - if (get->filt_id && strcmp (get->filt_id, FILT_ID_NONE)) - { - filter = filter_term (get->filt_id); - if (filter == NULL) - return -1; - } - else - filter = NULL; - - clause = filter_clause ("allinfo", filter ? filter : get->filter, - filter_columns, select_columns, NULL, get->trash, - NULL, NULL, NULL, NULL, NULL); - if (clause) - return sql_int ("SELECT count (id) FROM" - ALL_INFO_UNION_COLUMNS - " WHERE %s;", - clause); - } - - return sql_int ("SELECT (SELECT count (*) FROM cves)" - " + (SELECT count (*) FROM cpes)" - " + (SELECT count (*) FROM nvts)" - " + (SELECT count (*) FROM cert_bund_advs)" - " + (SELECT count (*) FROM dfn_cert_advs)" - " + (SELECT count (*) FROM ovaldefs);"); -} - /** * @brief Initialise an info iterator. * From d5f7ee843f055bdfa5bcfe920ef455ef3c40337d Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 22:59:46 +0200 Subject: [PATCH 05/11] Remove now unused init_all_info_iterator() --- src/manage.h | 3 - src/manage_sql_secinfo.c | 148 --------------------------------------- 2 files changed, 151 deletions(-) diff --git a/src/manage.h b/src/manage.h index d92542d54..5e76f95c6 100644 --- a/src/manage.h +++ b/src/manage.h @@ -3827,9 +3827,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t*, const char*, int, const char*); /* All SecInfo Data */ -int -init_all_info_iterator (iterator_t*, get_data_t*, const char*); - const char* all_info_iterator_type (iterator_t*); diff --git a/src/manage_sql_secinfo.c b/src/manage_sql_secinfo.c index b42044e86..e59ebf97f 100644 --- a/src/manage_sql_secinfo.c +++ b/src/manage_sql_secinfo.c @@ -1114,154 +1114,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t *iterator, const char *oid, /* All SecInfo data. */ -/** - * @brief Initialise an info iterator. - * - * @param[in] iterator Iterator. - * @param[in] get GET data. - * @param[in] name Name of the info - * - * - * @return 0 success, 1 failed to find info, 2 failed to find filter, - * -1 error. - */ -int -init_all_info_iterator (iterator_t* iterator, get_data_t *get, - const char *name) -{ - static const char *filter_columns[] = ALL_INFO_ITERATOR_FILTER_COLUMNS; - static column_t select_columns[] = ALL_INFO_ITERATOR_COLUMNS; - static column_t cve_select_columns[] = ALL_INFO_ITERATOR_COLUMNS_ARGS - ("CAST ('cve' AS text)", - "description", - "cvss"); - static column_t cpe_select_columns[] = ALL_INFO_ITERATOR_COLUMNS_ARGS - ("CAST ('cpe' AS text)", - "title", - "max_cvss"); - static column_t nvt_select_columns[] = ALL_INFO_ITERATOR_COLUMNS_ARGS - ("CAST ('nvt' AS text)", - "tag", - "cvss_base"); - static column_t cert_select_columns[] = ALL_INFO_ITERATOR_COLUMNS_ARGS - ("CAST ('cert_bund_adv' AS text)", - "title", - "max_cvss"); - static column_t dfn_select_columns[] = ALL_INFO_ITERATOR_COLUMNS_ARGS - ("CAST ('dfn_cert_adv' AS text)", - "title", - "max_cvss"); - static column_t ovaldef_select_columns[] = ALL_INFO_ITERATOR_COLUMNS_ARGS - ("CAST ('ovaldef' AS text)", - "title", - "max_cvss"); - int first, max; - gchar *columns, *clause, *filter, *order, *limit_clause; - gchar *subselect_limit_clause, *cve_clause, *cpe_clause, *nvt_clause; - gchar *cert_clause, *dfn_clause, *ovaldef_clause, *cve_order; - gchar *cpe_order, *nvt_order, *cert_order, *dfn_order, *ovaldef_order; - - if (get->filt_id && strcmp (get->filt_id, FILT_ID_NONE)) - { - filter = filter_term (get->filt_id); - if (filter == NULL) - return 2; - } - else - filter = NULL; - - clause = filter_clause ("allinfo", filter ? filter : get->filter, - filter_columns, select_columns, NULL, get->trash, - &order, &first, &max, NULL, NULL); - columns = columns_build_select (select_columns); - - subselect_limit_clause = g_strdup_printf ("LIMIT %s", - sql_select_limit (max + first)); - - limit_clause = g_strdup_printf ("LIMIT %s OFFSET %i", - sql_select_limit (max), - first); - - cve_clause = filter_clause ("cve", filter ? filter : get->filter, - filter_columns, cve_select_columns, NULL, - get->trash, &cve_order, NULL, NULL, NULL, NULL); - cpe_clause = filter_clause ("cpe", filter ? filter : get->filter, - filter_columns, cpe_select_columns, NULL, - get->trash, &cpe_order, NULL, NULL, NULL, NULL); - nvt_clause = filter_clause ("nvt", filter ? filter : get->filter, - filter_columns, nvt_select_columns, NULL, - get->trash, &nvt_order, NULL, NULL, NULL, NULL); - cert_clause = filter_clause ("cert_bund_adv", filter ? filter : get->filter, - filter_columns, cert_select_columns, NULL, - get->trash, &cert_order, NULL, NULL, NULL, NULL); - dfn_clause = filter_clause ("dfn_cert_adv", filter ? filter : get->filter, - filter_columns, dfn_select_columns, NULL, - get->trash, &dfn_order, NULL, NULL, NULL, NULL); - ovaldef_clause = filter_clause ("ovaldef", filter ? filter : get->filter, - filter_columns, ovaldef_select_columns, NULL, - get->trash, &ovaldef_order, NULL, NULL, NULL, - NULL); - - init_iterator (iterator, - "SELECT %s" - " FROM " ALL_INFO_UNION_COLUMNS_LIMIT - " %s%s" - " %s" - " %s;", - /* For the outer SELECT. */ - columns, - /* For the inner SELECTs. */ - cve_clause ? "WHERE " : "", - cve_clause ? cve_clause : "", - cve_order, - subselect_limit_clause, - cpe_clause ? "WHERE " : "", - cpe_clause ? cpe_clause : "", - cpe_order, - subselect_limit_clause, - nvt_clause ? "WHERE " : "", - nvt_clause ? nvt_clause : "", - nvt_order, - subselect_limit_clause, - cert_clause ? "WHERE " : "", - cert_clause ? cert_clause : "", - cert_order, - subselect_limit_clause, - dfn_clause ? "WHERE " : "", - dfn_clause ? dfn_clause : "", - dfn_order, - subselect_limit_clause, - ovaldef_clause ? "WHERE " : "", - ovaldef_clause ? ovaldef_clause : "", - ovaldef_order, - subselect_limit_clause, - /* For the outer SELECT. */ - clause ? "WHERE " : "", - clause ? clause : "", - order, - limit_clause); - - g_free (subselect_limit_clause); - g_free (limit_clause); - g_free (order); - g_free (filter); - g_free (columns); - g_free (clause); - g_free (cve_clause); - g_free (cpe_clause); - g_free (nvt_clause); - g_free (cert_clause); - g_free (dfn_clause); - g_free (ovaldef_clause); - g_free (cve_order); - g_free (cpe_order); - g_free (nvt_order); - g_free (cert_order); - g_free (dfn_order); - g_free (ovaldef_order); - return 0; -} - /** * @brief Get the secinfo type from an all info iterator. * From c1741a4b747e9c34768c98166b6634294797ea19 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 23:15:58 +0200 Subject: [PATCH 06/11] Remove all now unused all_info_iterator_*() --- src/manage.h | 9 --------- src/manage_sql_secinfo.c | 33 --------------------------------- 2 files changed, 42 deletions(-) diff --git a/src/manage.h b/src/manage.h index 5e76f95c6..20dcee54d 100644 --- a/src/manage.h +++ b/src/manage.h @@ -3827,15 +3827,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t*, const char*, int, const char*); /* All SecInfo Data */ -const char* -all_info_iterator_type (iterator_t*); - -const char* -all_info_iterator_extra (iterator_t*); - -const char* -all_info_iterator_severity (iterator_t*); - void init_ovaldi_file_iterator (iterator_t*); diff --git a/src/manage_sql_secinfo.c b/src/manage_sql_secinfo.c index e59ebf97f..7776f1a3c 100644 --- a/src/manage_sql_secinfo.c +++ b/src/manage_sql_secinfo.c @@ -1114,39 +1114,6 @@ init_nvt_dfn_cert_adv_iterator (iterator_t *iterator, const char *oid, /* All SecInfo data. */ -/** - * @brief Get the secinfo type from an all info iterator. - * - * @param[in] iterator Iterator. - * - * @return The type of a secinfo entry, - * or NULL if iteration is complete. - * Freed by cleanup_iterator. - */ -DEF_ACCESS (all_info_iterator_type, GET_ITERATOR_COLUMN_COUNT); - -/** - * @brief Get the secinfo extra information from an all info iterator. - * - * @param[in] iterator Iterator. - * - * @return extra info secinfo entry, - * or NULL if iteration is complete. - * Freed by cleanup_iterator. - */ -DEF_ACCESS (all_info_iterator_extra, GET_ITERATOR_COLUMN_COUNT + 1); - -/** - * @brief Get the severity from an all info iterator. - * - * @param[in] iterator Iterator. - * - * @return extra info secinfo entry, - * or NULL if iteration is complete. - * Freed by cleanup_iterator. - */ -DEF_ACCESS (all_info_iterator_severity, GET_ITERATOR_COLUMN_COUNT + 2); - /** * @brief Initialise an ovaldi file iterator. * From 3a93ac43690426190b110019cce5cae7419f7881 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Thu, 10 Oct 2019 23:29:49 +0200 Subject: [PATCH 07/11] Remove all now unused ALL_INFO* makros. --- src/manage_sql.c | 10 --- src/manage_sql_secinfo.h | 143 --------------------------------------- 2 files changed, 153 deletions(-) diff --git a/src/manage_sql.c b/src/manage_sql.c index b3d9a5c0b..d79141806 100644 --- a/src/manage_sql.c +++ b/src/manage_sql.c @@ -63841,7 +63841,6 @@ type_select_columns (const char *type) { static column_t agent_columns[] = AGENT_ITERATOR_COLUMNS; static column_t alert_columns[] = ALERT_ITERATOR_COLUMNS; - static column_t allinfo_columns[] = ALL_INFO_ITERATOR_COLUMNS; static column_t cert_bund_adv_columns[] = CERT_BUND_ADV_INFO_ITERATOR_COLUMNS; static column_t config_columns[] = CONFIG_ITERATOR_COLUMNS; static column_t cpe_columns[] = CPE_INFO_ITERATOR_COLUMNS; @@ -63877,8 +63876,6 @@ type_select_columns (const char *type) return agent_columns; if (strcasecmp (type, "ALERT") == 0) return alert_columns; - if (strcasecmp (type, "ALLINFO") == 0) - return allinfo_columns; if (strcasecmp (type, "CERT_BUND_ADV") == 0) return cert_bund_adv_columns; if (strcasecmp (type, "CONFIG") == 0) @@ -63994,11 +63991,6 @@ type_filter_columns (const char *type) static const char *ret[] = ALERT_ITERATOR_FILTER_COLUMNS; return ret; } - if (strcasecmp (type, "ALLINFO") == 0) - { - static const char *ret[] = ALL_INFO_ITERATOR_FILTER_COLUMNS; - return ret; - } if (strcasecmp (type, "CERT_BUND_ADV") == 0) { static const char *ret[] = CERT_BUND_ADV_INFO_ITERATOR_FILTER_COLUMNS; @@ -64199,8 +64191,6 @@ type_table (const char *type, int trash) { if (type == NULL) return NULL; - if (strcasecmp (type, "ALLINFO") == 0) - return g_strdup (ALL_INFO_UNION_COLUMNS); if (trash && type_trash_in_table (type) == 0) return g_strdup_printf ("%ss_trash", type); if (trash == 0 || type_trash_in_table (type)) diff --git a/src/manage_sql_secinfo.h b/src/manage_sql_secinfo.h index 7f2661002..005e64ce2 100644 --- a/src/manage_sql_secinfo.h +++ b/src/manage_sql_secinfo.h @@ -177,149 +177,6 @@ { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \ } -/** - * @brief Filter columns for All SecInfo iterator. - */ -#define ALL_INFO_ITERATOR_FILTER_COLUMNS \ - { GET_ITERATOR_FILTER_COLUMNS, "type", "extra", "severity", NULL } - -/** - * @brief All SecInfo iterator columns. - */ -#define ALL_INFO_ITERATOR_COLUMNS \ - { \ - { "id", NULL, KEYWORD_TYPE_INTEGER }, \ - { "uuid", NULL, KEYWORD_TYPE_STRING }, \ - { "name", NULL, KEYWORD_TYPE_STRING }, \ - { "comment", NULL, KEYWORD_TYPE_STRING }, \ - { "iso_time (created)", NULL, KEYWORD_TYPE_STRING }, \ - { "iso_time (modified)", NULL, KEYWORD_TYPE_STRING }, \ - { "created", NULL, KEYWORD_TYPE_INTEGER }, \ - { "modified", NULL, KEYWORD_TYPE_INTEGER }, \ - { "''", "_owner", KEYWORD_TYPE_STRING }, \ - { "0", NULL, KEYWORD_TYPE_INTEGER }, \ - { "type", NULL, KEYWORD_TYPE_STRING }, \ - { "extra", NULL, KEYWORD_TYPE_STRING }, \ - { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \ - { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \ - } - -/** - * @brief All SecInfo iterator columns. - */ -#define ALL_INFO_ITERATOR_COLUMNS_ARGS(type, extra, severity) \ - { \ - { "id", NULL, KEYWORD_TYPE_INTEGER }, \ - { "uuid", NULL, KEYWORD_TYPE_STRING }, \ - { "name", NULL, KEYWORD_TYPE_STRING }, \ - { "comment", NULL, KEYWORD_TYPE_STRING }, \ - { "iso_time (created)", NULL, KEYWORD_TYPE_STRING }, \ - { "iso_time (modified)", NULL, KEYWORD_TYPE_STRING }, \ - { "created", NULL, KEYWORD_TYPE_INTEGER }, \ - { "modified", NULL, KEYWORD_TYPE_INTEGER }, \ - { "''", "_owner", KEYWORD_TYPE_STRING }, \ - { "0", NULL, KEYWORD_TYPE_INTEGER }, \ - { type, "type", KEYWORD_TYPE_STRING }, \ - { extra, "extra", KEYWORD_TYPE_STRING }, \ - { severity, "severity", KEYWORD_TYPE_DOUBLE }, \ - { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \ - } - - /** - * @brief All SecInfo iterator column union. - */ -#define ALL_INFO_UNION_COLUMNS \ - "(SELECT " GET_ITERATOR_COLUMNS_STRING ", '' AS _owner, 'cve' AS type," \ - " description AS extra, cvss AS severity" \ - " FROM cves" \ - " UNION ALL SELECT " GET_ITERATOR_COLUMNS_STRING ", '' AS _owner," \ - " 'cpe' AS type, title AS extra, max_cvss AS severity" \ - " FROM cpes" \ - " UNION ALL SELECT " GET_ITERATOR_COLUMNS_STRING ", '' AS _owner," \ - " 'nvt' AS type, tag AS extra," \ - " CAST (cvss_base AS float) AS severity" \ - " FROM nvts" \ - " UNION ALL SELECT " GET_ITERATOR_COLUMNS_STRING ", '' AS _owner," \ - " 'cert_bund_adv' AS type, title AS extra," \ - " max_cvss AS severity" \ - " FROM cert_bund_advs" \ - " UNION ALL SELECT " GET_ITERATOR_COLUMNS_STRING ", '' AS _owner," \ - " 'dfn_cert_adv' AS type, title AS extra," \ - " max_cvss AS severity" \ - " FROM dfn_cert_advs" \ - " UNION ALL SELECT " GET_ITERATOR_COLUMNS_STRING ", '' AS _owner," \ - " 'ovaldef' AS type, title AS extra, max_cvss AS severity" \ - " FROM ovaldefs)" \ - " AS allinfo" - -/** - * @brief All SecInfo iterator column union, with specifiers for LIMIT clause. - */ -#define ALL_INFO_UNION_COLUMNS_LIMIT \ - "(SELECT * FROM (SELECT " GET_ITERATOR_COLUMNS_STRING "," \ - " CAST ('' AS text) AS _owner," \ - " CAST ('cve' AS text) AS type," \ - " description as extra, cvss as severity" \ - " FROM cves" \ - " %s%s" \ - " %s" \ - " %s)" \ - " AS union_sub_1" \ - " UNION ALL" \ - " SELECT * FROM (SELECT " GET_ITERATOR_COLUMNS_STRING "," \ - " CAST ('' AS text) AS _owner," \ - " CAST ('cpe' AS text) AS type, title as extra," \ - " max_cvss as severity" \ - " FROM cpes" \ - " %s%s" \ - " %s" \ - " %s)" \ - " AS union_sub_2" \ - " UNION ALL" \ - " SELECT * FROM (SELECT " GET_ITERATOR_COLUMNS_STRING "," \ - " CAST ('' AS text) AS _owner," \ - " CAST ('nvt' AS text) AS type," \ - " tag AS extra," \ - " CAST (cvss_base AS float) as severity" \ - " FROM nvts" \ - " %s%s" \ - " %s" \ - " %s)" \ - " AS union_sub_3" \ - " UNION ALL" \ - " SELECT * FROM (SELECT " GET_ITERATOR_COLUMNS_STRING "," \ - " CAST ('' AS text) AS _owner," \ - " CAST ('cert_bund_adv' AS text) AS type," \ - " title as extra," \ - " max_cvss as severity" \ - " FROM cert_bund_advs" \ - " %s%s" \ - " %s" \ - " %s)" \ - " AS union_sub_4" \ - " UNION ALL" \ - " SELECT * FROM (SELECT " GET_ITERATOR_COLUMNS_STRING "," \ - " CAST ('' AS text) AS _owner," \ - " CAST ('dfn_cert_adv' AS text) AS type," \ - " title as extra," \ - " max_cvss as severity" \ - " FROM dfn_cert_advs" \ - " %s%s" \ - " %s" \ - " %s)" \ - " AS union_sub_5" \ - " UNION ALL" \ - " SELECT * FROM (SELECT " GET_ITERATOR_COLUMNS_STRING "," \ - " CAST ('' AS text) AS _owner," \ - " CAST ('ovaldef' AS text) AS type, title as extra," \ - " max_cvss as severity" \ - " FROM ovaldefs" \ - " %s%s" \ - " %s" \ - " %s)" \ - " AS union_sub_6)" \ - " AS allinfo" - /** * @brief Default for secinfo_commit_size. */ From 867bac57f6793f67694533cad4093b287cd21523 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Fri, 11 Oct 2019 22:03:47 +0200 Subject: [PATCH 08/11] Remove handling of allinto cases. --- src/manage_sql.c | 137 ++--------------------------------------------- 1 file changed, 3 insertions(+), 134 deletions(-) diff --git a/src/manage_sql.c b/src/manage_sql.c index d79141806..69166cc17 100644 --- a/src/manage_sql.c +++ b/src/manage_sql.c @@ -2987,32 +2987,6 @@ filter_clause_append_tag (GString *clause, keyword_t *keyword, || keyword->relation == KEYWORD_RELATION_COLUMN_ABOVE || keyword->relation == KEYWORD_RELATION_COLUMN_BELOW) { - if (strcasecmp (type, "allinfo") == 0) - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.name = '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = allinfo.uuid" - " AND tag_resources.resource_type" - " = allinfo.type" - " AND tag = tags.id)" - " %s%s%s))", - get_join (first_keyword, last_was_and, - last_was_not), - tag_name, - (value_given - ? "AND tags.value = '" - : ""), - value_given ? tag_value : "", - (value_given - ? "'" - : "")); - else g_string_append_printf (clause, "%s" @@ -3042,28 +3016,6 @@ filter_clause_append_tag (GString *clause, keyword_t *keyword, } else if (keyword->relation == KEYWORD_RELATION_COLUMN_APPROX) { - if (strcasecmp (type, "allinfo") == 0) - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.name %s '%%%%%s%%%%'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = allinfo.uuid" - " AND tag_resources.resource_type" - " = allinfo.type" - " AND tag = tags.id)" - " AND tags.value %s '%%%%%s%%%%'))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_ilike_op (), - tag_name, - sql_ilike_op (), - tag_value); - else g_string_append_printf (clause, "%s" @@ -3089,29 +3041,6 @@ filter_clause_append_tag (GString *clause, keyword_t *keyword, } else if (keyword->relation == KEYWORD_RELATION_COLUMN_REGEXP) { - if (strcasecmp (type, "allinfo") == 0) - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.name %s '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = allinfo.uuid" - " AND tag_resources.resource_type" - " = allinfo.type" - " AND tag = tags.id)" - " AND tags.value" - " %s '%s'))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_regexp_op (), - tag_name, - sql_regexp_op (), - tag_value); - else g_string_append_printf (clause, "%s" @@ -3166,24 +3095,6 @@ filter_clause_append_tag_id (GString *clause, keyword_t *keyword, || keyword->relation == KEYWORD_RELATION_COLUMN_ABOVE || keyword->relation == KEYWORD_RELATION_COLUMN_BELOW) { - if (strcasecmp (type, "allinfo") == 0) - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.uuid = '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = allinfo.uuid" - " AND tag_resources.resource_type" - " = allinfo.type" - " AND tag = tags.id)))", - get_join (first_keyword, last_was_and, - last_was_not), - quoted_keyword); - else g_string_append_printf (clause, "%s" @@ -3205,25 +3116,6 @@ filter_clause_append_tag_id (GString *clause, keyword_t *keyword, } else if (keyword->relation == KEYWORD_RELATION_COLUMN_APPROX) { - if (strcasecmp (type, "allinfo") == 0) - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.uuid %s '%%%%%s%%%%'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = allinfo.uuid" - " AND tag_resources.resource_type" - " = allinfo.type" - " AND tag = tags.id)))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_ilike_op (), - quoted_keyword); - else g_string_append_printf (clause, "%s" @@ -3246,25 +3138,6 @@ filter_clause_append_tag_id (GString *clause, keyword_t *keyword, } else if (keyword->relation == KEYWORD_RELATION_COLUMN_REGEXP) { - if (strcasecmp (type, "allinfo") == 0) - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.uuid %s '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = allinfo.uuid" - " AND tag_resources.resource_type" - " = allinfo.type" - " AND tag = tags.id)))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_regexp_op (), - quoted_keyword); - else g_string_append_printf (clause, "%s" @@ -4456,7 +4329,7 @@ type_is_asset_subtype (const char *type) } /** - * @brief Check whether a resource type is an info subtype, excluding allinfo. + * @brief Check whether a resource type is an info subtype. * * @param[in] type Type of resource. * @@ -4530,7 +4403,6 @@ type_has_trash (const char *type) && strcasecmp (type, "result") && strcasecmp (type, "info") && type_is_info_subtype (type) == 0 - && strcasecmp (type, "allinfo") && strcasecmp (type, "vuln") && strcasecmp (type, "user") && strcasecmp (type, "tls_certificate")); @@ -4548,7 +4420,6 @@ type_owned (const char* type) { return (strcasecmp (type, "info") && type_is_info_subtype (type) == 0 - && strcasecmp (type, "allinfo") && strcasecmp (type, "vuln")); } @@ -5614,12 +5485,10 @@ init_aggregate_iterator (iterator_t* iterator, const char *type, if ((manage_scap_loaded () == FALSE && (strcmp (type, "cve") == 0 || strcmp (type, "cpe") == 0 - || strcmp (type, "ovaldef") == 0 - || strcmp (type, "allinfo") == 0)) + || strcmp (type, "ovaldef") == 0)) || (manage_cert_loaded () == FALSE && (strcmp (type, "cert_bund_adv") == 0 - || strcmp (type, "dfn_cert_adv") == 0 - || strcmp (type, "allinfo") == 0))) + || strcmp (type, "dfn_cert_adv") == 0))) { // Init a dummy iterator if SCAP or CERT DB is required but unavailable. init_iterator (iterator, From 48bb93590ce3e63be3b89108a7f177105d3b862b Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Fri, 11 Oct 2019 22:27:30 +0200 Subject: [PATCH 09/11] Fix indention only. --- src/manage_sql.c | 254 +++++++++++++++++++++++------------------------ 1 file changed, 127 insertions(+), 127 deletions(-) diff --git a/src/manage_sql.c b/src/manage_sql.c index 69166cc17..d54a1f24f 100644 --- a/src/manage_sql.c +++ b/src/manage_sql.c @@ -2987,83 +2987,83 @@ filter_clause_append_tag (GString *clause, keyword_t *keyword, || keyword->relation == KEYWORD_RELATION_COLUMN_ABOVE || keyword->relation == KEYWORD_RELATION_COLUMN_BELOW) { - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.name = '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = %ss.uuid" - " AND tag_resources.resource_type" - " = '%s'" - " AND tag = tags.id)" - " %s%s%s))", - get_join (first_keyword, last_was_and, - last_was_not), - tag_name, - type, - type, - (value_given - ? "AND tags.value = '" - : ""), - value_given ? tag_value : "", - (value_given - ? "'" - : "")); + g_string_append_printf + (clause, + "%s" + "(EXISTS" + " (SELECT * FROM tags" + " WHERE tags.name = '%s'" + " AND tags.active != 0" + " AND EXISTS (SELECT * FROM tag_resources" + " WHERE tag_resources.resource_uuid" + " = %ss.uuid" + " AND tag_resources.resource_type" + " = '%s'" + " AND tag = tags.id)" + " %s%s%s))", + get_join (first_keyword, last_was_and, + last_was_not), + tag_name, + type, + type, + (value_given + ? "AND tags.value = '" + : ""), + value_given ? tag_value : "", + (value_given + ? "'" + : "")); } else if (keyword->relation == KEYWORD_RELATION_COLUMN_APPROX) { - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.name %s '%%%%%s%%%%'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = %ss.uuid" - " AND tag_resources.resource_type" - " = '%s'" - " AND tag = tags.id)" - " AND tags.value %s '%%%%%s%%%%'))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_ilike_op (), - tag_name, - type, - type, - sql_ilike_op (), - tag_value); + g_string_append_printf + (clause, + "%s" + "(EXISTS" + " (SELECT * FROM tags" + " WHERE tags.name %s '%%%%%s%%%%'" + " AND tags.active != 0" + " AND EXISTS (SELECT * FROM tag_resources" + " WHERE tag_resources.resource_uuid" + " = %ss.uuid" + " AND tag_resources.resource_type" + " = '%s'" + " AND tag = tags.id)" + " AND tags.value %s '%%%%%s%%%%'))", + get_join (first_keyword, last_was_and, + last_was_not), + sql_ilike_op (), + tag_name, + type, + type, + sql_ilike_op (), + tag_value); } else if (keyword->relation == KEYWORD_RELATION_COLUMN_REGEXP) { - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.name %s '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = %ss.uuid" - " AND tag_resources.resource_type" - " = '%s'" - " AND tag = tags.id)" - " AND tags.value" - " %s '%s'))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_regexp_op (), - tag_name, - type, - type, - sql_regexp_op (), - tag_value); + g_string_append_printf + (clause, + "%s" + "(EXISTS" + " (SELECT * FROM tags" + " WHERE tags.name %s '%s'" + " AND tags.active != 0" + " AND EXISTS (SELECT * FROM tag_resources" + " WHERE tag_resources.resource_uuid" + " = %ss.uuid" + " AND tag_resources.resource_type" + " = '%s'" + " AND tag = tags.id)" + " AND tags.value" + " %s '%s'))", + get_join (first_keyword, last_was_and, + last_was_not), + sql_regexp_op (), + tag_name, + type, + type, + sql_regexp_op (), + tag_value); } g_free (quoted_keyword); @@ -3095,68 +3095,68 @@ filter_clause_append_tag_id (GString *clause, keyword_t *keyword, || keyword->relation == KEYWORD_RELATION_COLUMN_ABOVE || keyword->relation == KEYWORD_RELATION_COLUMN_BELOW) { - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.uuid = '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = %ss.uuid" - " AND tag_resources.resource_type" - " = '%s'" - " AND tag = tags.id)))", - get_join (first_keyword, last_was_and, - last_was_not), - quoted_keyword, - type, - type); + g_string_append_printf + (clause, + "%s" + "(EXISTS" + " (SELECT * FROM tags" + " WHERE tags.uuid = '%s'" + " AND tags.active != 0" + " AND EXISTS (SELECT * FROM tag_resources" + " WHERE tag_resources.resource_uuid" + " = %ss.uuid" + " AND tag_resources.resource_type" + " = '%s'" + " AND tag = tags.id)))", + get_join (first_keyword, last_was_and, + last_was_not), + quoted_keyword, + type, + type); } else if (keyword->relation == KEYWORD_RELATION_COLUMN_APPROX) { - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.uuid %s '%%%%%s%%%%'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = %ss.uuid" - " AND tag_resources.resource_type" - " = '%s'" - " AND tag = tags.id)))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_ilike_op (), - quoted_keyword, - type, - type); + g_string_append_printf + (clause, + "%s" + "(EXISTS" + " (SELECT * FROM tags" + " WHERE tags.uuid %s '%%%%%s%%%%'" + " AND tags.active != 0" + " AND EXISTS (SELECT * FROM tag_resources" + " WHERE tag_resources.resource_uuid" + " = %ss.uuid" + " AND tag_resources.resource_type" + " = '%s'" + " AND tag = tags.id)))", + get_join (first_keyword, last_was_and, + last_was_not), + sql_ilike_op (), + quoted_keyword, + type, + type); } else if (keyword->relation == KEYWORD_RELATION_COLUMN_REGEXP) { - g_string_append_printf - (clause, - "%s" - "(EXISTS" - " (SELECT * FROM tags" - " WHERE tags.uuid %s '%s'" - " AND tags.active != 0" - " AND EXISTS (SELECT * FROM tag_resources" - " WHERE tag_resources.resource_uuid" - " = %ss.uuid" - " AND tag_resources.resource_type" - " = '%s'" - " AND tag = tags.id)))", - get_join (first_keyword, last_was_and, - last_was_not), - sql_regexp_op (), - quoted_keyword, - type, - type); + g_string_append_printf + (clause, + "%s" + "(EXISTS" + " (SELECT * FROM tags" + " WHERE tags.uuid %s '%s'" + " AND tags.active != 0" + " AND EXISTS (SELECT * FROM tag_resources" + " WHERE tag_resources.resource_uuid" + " = %ss.uuid" + " AND tag_resources.resource_type" + " = '%s'" + " AND tag = tags.id)))", + get_join (first_keyword, last_was_and, + last_was_not), + sql_regexp_op (), + quoted_keyword, + type, + type); } g_free (quoted_keyword); From 749cea128b525109cce3b55d39df7f3cbcc3ca41 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Fri, 11 Oct 2019 22:55:15 +0200 Subject: [PATCH 10/11] Update documentation for get_info. The attribute "type" will not handle value "ALLINFO" anymore. --- src/schema_formats/XML/GMP.xml.in | 57 +++++++------------------------ 1 file changed, 12 insertions(+), 45 deletions(-) diff --git a/src/schema_formats/XML/GMP.xml.in b/src/schema_formats/XML/GMP.xml.in index 578dce9f8..0e6995524 100644 --- a/src/schema_formats/XML/GMP.xml.in +++ b/src/schema_formats/XML/GMP.xml.in @@ -12298,7 +12298,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. type - Type must be either CERT_BUND_ADV, CPE, CVE, DFN_CERT_ADV, OVALDEF, NVT or ALLINFO + Type must be either CERT_BUND_ADV, CPE, CVE, DFN_CERT_ADV, OVALDEF or NVT text 1 @@ -12563,19 +12563,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Alias for severity - - type is "allinfo" - - type - text - Type of SecInfo as given in the "type" parameter - - - extra - text - Title or similar text - - filt_id @@ -12629,7 +12616,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. dfn_cert_adv ovaldef nvt - allinfo @@ -13134,36 +13120,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - - allinfo - - type - extra - severity - - A SecInfo entry. Could be CPE, CVE, NVT, OVALDEF or DFN-CERT Advisory - - type - Type of SecInfo entry - - text - - - - extra - Extra information from the entry like title or description - - text - - - - severity - Severity rating (CVSS score) of the entry - - severity - - - filters @@ -27252,6 +27208,17 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + GET_INFO + Attribute "type" can not be "ALLINFO" anymore + +

+ The type "ALLINFO" is not supported aymore. +

+
+ 20.04 +
+ GET_REPORTS Default of "details" attribute is now 0 From 08d3f8818a5968f78d95297f08c39595826e56a4 Mon Sep 17 00:00:00 2001 From: Jan-Oliver Wagner Date: Mon, 14 Oct 2019 20:12:22 +0200 Subject: [PATCH 11/11] Add Changelog entry. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3545c984..c1c29e65a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Add NULL check in nvts_feed_version_epoch [#768](https://github.com/greenbone/gvmd/pull/768) ### Removed +- Remove suport for "All SecInfo": removal of "allinfo" for type in get_info [#790](https://github.com/greenbone/gvmd/pull/790) [20.04]: https://github.com/greenbone/gvmd/compare/gvmd-9.0...master