From patchwork Fri Apr 24 09:21:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 39168 From: gprocida@google.com (Giuliano Procida) Date: Fri, 24 Apr 2020 10:21:27 +0100 Subject: [PATCH v3 16/21] abg-tools-utils.cc: Assert generated regexes OK. In-Reply-To: <20200424092132.150547-1-gprocida@google.com> References: <20200423154441.170531-1-gprocida@google.com> <20200424092132.150547-1-gprocida@google.com> Message-ID: <20200424092132.150547-17-gprocida@google.com> There are a couple of places where regexes are generated interally. Assert they compile OK. This is just paranoia. There should be no behavioural changes. * src/abg-tools-utils.cc (handle_file_entry): Assert internally-generated regex compiles. (gen_suppr_spec_from_kernel_abi_whitelists): Assert internally-generated regex compiles. Signed-off-by: Giuliano Procida Reviewed-by: Matthias Maennich --- src/abg-tools-utils.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc index fe0de750..3af9fc49 100644 --- a/src/abg-tools-utils.cc +++ b/src/abg-tools-utils.cc @@ -1818,6 +1818,7 @@ handle_file_entry(const string& file_path, // Types that are defined in system headers are usually // OK to be considered as public types. regex::regex_t_sptr headers_regex = regex::compile("^/usr/include/"); + ABG_ASSERT(headers_regex); suppr->set_source_location_to_keep_regex(headers_regex); suppr->set_is_artificial(true); } @@ -2008,6 +2009,7 @@ gen_suppr_spec_from_kernel_abi_whitelists // the function and variable names expressed in the white list. regex::regex_t_sptr regex = regex::compile(regex::generate_from_strings(whitelisted_names)); + ABG_ASSERT(regex); // Build a suppression specification which *keeps* functions // whose ELF symbols match the regular expression contained