From edb63b14225c783c673dcac0cc3c60aae076e45c Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 11 Jan 2021 11:37:11 +0100 Subject: kernels: Fix std::out_of_range if no kernels to protect In case we did not find any kernels to protect, the regular expression will be empty, and trying to substr(1) it will fail. --- apt-pkg/algorithms.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 260a8ac41..4c267c91c 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1606,7 +1606,12 @@ std::string GetProtectedKernelsRegex(pkgCache *cache, bool ReturnRemove) } } - auto re = ss.str().substr(1); + auto re_with_leading_or = ss.str(); + + if (re_with_leading_or.empty()) + return ""; + + auto re = re_with_leading_or.substr(1); if (Debug) std::clog << "Kernel protection regex: " << re << "\n"; -- cgit v1.2.3