From 7801dc763e50fcecc8a370f78fe33b5e86e1c8a3 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 26 Nov 2020 22:50:00 +0300 Subject: Fix crashing on unhandled invalid_path thrown by cc::common::pkgconfig_load() --- libbuild2/cc/pkgconfig.cxx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/libbuild2/cc/pkgconfig.cxx b/libbuild2/cc/pkgconfig.cxx index 516746b..bbcddf9 100644 --- a/libbuild2/cc/pkgconfig.cxx +++ b/libbuild2/cc/pkgconfig.cxx @@ -972,13 +972,23 @@ namespace build2 else p = string (o, 2); - dir_path d (move (p)); + try + { + dir_path d (move (p)); - if (d.relative ()) - fail << "relative -L directory in '" << lflags () << "'" << - info << "while parsing pkg-config --libs " << pc.path; + if (d.relative ()) + fail << "relative -L directory '" << d << "' in '" + << lflags () << "'" << + info << "while parsing pkg-config --libs " << pc.path; - usrd->push_back (move (d)); + usrd->push_back (move (d)); + } + catch (const invalid_path& e) + { + fail << "invalid -L directory '" << e.path << "' in '" + << lflags () << "'" << + info << "while parsing pkg-config --libs " << pc.path; + } } } } -- cgit v1.1