From 825a9969dea052b02ba868bdf39e676349f10dce Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Thu, 9 Feb 2017 14:51:28 +0200
Subject: [PATCH] curl: allow overriding default CA certificate file

Similar to curl, --cacert can now be used in cve-check-tool and
cve-check-update to override the default CA certificate file. Useful
in cases where the system default is unsuitable (for example,
out-dated) or broken (as in OE's current native libcurl, which embeds
a path string from one build host and then uses it on another although
the right path may have become something different).

Upstream-Status: Submitted [https://github.com/ikeydoherty/cve-check-tool/pull/45]

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>


Took Patrick Ohlys original patch from meta-security-isafw, rebased
on top of other patches.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 src/library/cve-check-tool.h |  1 +
 src/library/fetch.c          | 10 +++++++++-
 src/library/fetch.h          |  3 ++-
 src/main.c                   |  5 ++++-
 src/update-main.c            |  4 +++-
 src/update.c                 | 12 +++++++-----
 src/update.h                 |  2 +-
 7 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/src/library/cve-check-tool.h b/src/library/cve-check-tool.h
index e4bb5b1..f89eade 100644
--- a/src/library/cve-check-tool.h
+++ b/src/library/cve-check-tool.h
@@ -43,6 +43,7 @@ typedef struct CveCheckTool {
     bool bugs;                          /**<Whether bug tracking is enabled */
     GHashTable *mapping;                /**<CVE Mapping */
     const char *output_file;            /**<Output file, if any */
+    const char *cacert_file;            /**<Non-default SSL certificate file, if any */
 } CveCheckTool;
 
 /**
diff --git a/src/library/fetch.c b/src/library/fetch.c
index 0fe6d76..8f998c3 100644
--- a/src/library/fetch.c
+++ b/src/library/fetch.c
@@ -60,7 +60,8 @@ static int progress_callback_new(void *ptr, curl_off_t dltotal, curl_off_t dlnow
 }
 
 FetchStatus fetch_uri(const char *uri, const char *target, bool verbose,
-                      unsigned int start_percent, unsigned int end_percent)
+                      unsigned int start_percent, unsigned int end_percent,
+                      const char *cacert_file)
 {
         FetchStatus ret = FETCH_STATUS_FAIL;
         CURLcode res;
@@ -74,6 +75,13 @@ FetchStatus fetch_uri(const char *uri, const char *target, bool verbose,
                 return ret;
         }
 
+        if (cacert_file) {
+                res = curl_easy_setopt(curl, CURLOPT_CAINFO, cacert_file);
+                if (res != CURLE_OK) {
+                        goto bail;
+                }
+        }
+
         if (stat(target, &st) == 0) {
                 res = curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
                 if (res != CURLE_OK) {
diff --git a/src/library/fetch.h b/src/library/fetch.h
index 4cce5d1..836c7d7 100644
--- a/src/library/fetch.h
+++ b/src/library/fetch.h
@@ -29,7 +29,8 @@ typedef enum {
  * @return A FetchStatus, indicating the operation taken
  */
 FetchStatus fetch_uri(const char *uri, const char *target, bool verbose,
-                      unsigned int this_percent, unsigned int next_percent);
+                      unsigned int this_percent, unsigned int next_percent,
+                      const char *cacert_file);
 
 /**
  * Attempt to extract the given gzipped file
diff --git a/src/main.c b/src/main.c
index 8e6f158..ae69d47 100644
--- a/src/main.c
+++ b/src/main.c
@@ -280,6 +280,7 @@ static bool csv_mode = false;
 static char *modified_stamp = NULL;
 static gchar *mapping_file = NULL;
 static gchar *output_file = NULL;
+static gchar *cacert_file = NULL;
 
 static GOptionEntry _entries[] = {
         { "not-patched", 'n', 0, G_OPTION_ARG_NONE, &hide_patched, "Hide patched/addressed CVEs", NULL },
@@ -294,6 +295,7 @@ static GOptionEntry _entries[] = {
         { "csv", 'c', 0, G_OPTION_ARG_NONE, &csv_mode, "Output CSV formatted data only", NULL },
         { "mapping", 'M', 0, G_OPTION_ARG_STRING, &mapping_file, "Path to a mapping file", NULL},
         { "output-file", 'o', 0, G_OPTION_ARG_STRING, &output_file, "Path to the output file (output plugin specific)", NULL},
+        { "cacert", 'C', 0, G_OPTION_ARG_STRING, &cacert_file, "Path to the combined SSL certificates file (system default is used if not set)", NULL},
         { .short_name = 0 }
 };
 
@@ -492,6 +494,7 @@ int main(int argc, char **argv)
 
         quiet = csv_mode || !no_html;
         self->output_file = output_file;
+        self->cacert_file = cacert_file;
 
         if (!csv_mode && self->output_file) {
                 quiet = false;
@@ -530,7 +533,7 @@ int main(int argc, char **argv)
                 if (status) {
                         fprintf(stderr, "Update of db forced\n");
                         cve_db_unlock();
-                        if (!update_db(quiet, db_path->str)) {
+                        if (!update_db(quiet, db_path->str, self->cacert_file)) {
                                 fprintf(stderr, "DB update failure\n");
                                 goto cleanup;
                         }
diff --git a/src/update-main.c b/src/update-main.c
index 2379cfa..c52d9d0 100644
--- a/src/update-main.c
+++ b/src/update-main.c
@@ -43,11 +43,13 @@ the Free Software Foundation; either version 2 of the License, or\n\
 static gchar *nvds = NULL;
 static bool _show_version = false;
 static bool _quiet = false;
+static const char *_cacert_file = NULL;
 
 static GOptionEntry _entries[] = {
         { "nvd-dir", 'd', 0, G_OPTION_ARG_STRING, &nvds, "NVD directory in filesystem", NULL },
         { "version", 'v', 0, G_OPTION_ARG_NONE, &_show_version, "Show version", NULL },
         { "quiet", 'q', 0, G_OPTION_ARG_NONE, &_quiet, "Run silently", NULL },
+        { "cacert", 'C', 0, G_OPTION_ARG_STRING, &_cacert_file, "Path to the combined SSL certificates file (system default is used if not set)", NULL},
         { .short_name = 0 }
 };
 
@@ -88,7 +90,7 @@ int main(int argc, char **argv)
                 goto end;
         }
 
-        if (update_db(_quiet, db_path->str)) {
+        if (update_db(_quiet, db_path->str, _cacert_file)) {
                 ret = EXIT_SUCCESS;
         } else {
                 fprintf(stderr, "Failed to update database\n");
diff --git a/src/update.c b/src/update.c
index 070560a..8cb4a39 100644
--- a/src/update.c
+++ b/src/update.c
@@ -267,7 +267,8 @@ static inline void update_end(int fd, const char *update_fname, bool ok)
 
 static int do_fetch_update(int year, const char *db_dir, CveDB *cve_db,
                            bool db_exist, bool verbose,
-                           unsigned int this_percent, unsigned int next_percent)
+                           unsigned int this_percent, unsigned int next_percent,
+                           const char *cacert_file)
 {
         const char nvd_uri[] = URI_PREFIX;
         autofree(cve_string) *uri_meta = NULL;
@@ -331,14 +332,14 @@ refetch:
         }
 
         /* Fetch NVD META file */
-        st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose, this_percent, this_percent);
+        st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose, this_percent, this_percent, cacert_file);
         if (st == FETCH_STATUS_FAIL) {
                 fprintf(stderr, "Failed to fetch %s\n", uri_meta->str);
                 return -1;
         }
 
         /* Fetch NVD XML file */
-        st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose, this_percent, next_percent);
+        st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose, this_percent, next_percent, cacert_file);
         switch (st) {
         case FETCH_STATUS_FAIL:
                 fprintf(stderr, "Failed to fetch %s\n", uri_data_gz->str);
@@ -391,7 +392,7 @@ refetch:
         return 0;
 }
 
-bool update_db(bool quiet, const char *db_file)
+bool update_db(bool quiet, const char *db_file, const char *cacert_file)
 {
         autofree(char) *db_dir = NULL;
         autofree(CveDB) *cve_db = NULL;
@@ -466,7 +467,8 @@ bool update_db(bool quiet, const char *db_file)
                 if (!quiet)
                         fprintf(stderr, "completed: %u%%\r", start_percent);
                 rc = do_fetch_update(y, db_dir, cve_db, db_exist, !quiet,
-                                     start_percent, end_percent);
+                                     start_percent, end_percent,
+                                     cacert_file);
                 switch (rc) {
                 case 0:
                         if (!quiet)
diff --git a/src/update.h b/src/update.h
index b8e9911..ceea0c3 100644
--- a/src/update.h
+++ b/src/update.h
@@ -15,7 +15,7 @@ cve_string *get_db_path(const char *path);
 
 int update_required(const char *db_file);
 
-bool update_db(bool quiet, const char *db_file);
+bool update_db(bool quiet, const char *db_file, const char *cacert_file);
 
 
 /*
-- 
2.1.4

