From patchwork Mon May 4 12:34:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 39211 From: gprocida@google.com (Giuliano Procida) Date: Mon, 4 May 2020 13:34:16 +0100 Subject: [PATCH v4 15/15] abg-tools-utils.cc: Assert generated regexes OK. In-Reply-To: <20200504123416.243214-1-gprocida@google.com> References: <20200424092132.150547-1-gprocida@google.com> <20200504123416.243214-1-gprocida@google.com> Message-ID: <20200504123416.243214-16-gprocida@google.com> There are a couple of places where regexes are generated internally. 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. Reviewed-by: Matthias Maennich Signed-off-by: Giuliano Procida --- 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