summary refs log tree commit diff
diff options
context:
space:
mode:
authorVictor Fuentes <vmfuentes64@gmail.com>2022-09-18 13:30:20 -0400
committerVictor Fuentes <vmfuentes64@gmail.com>2022-11-03 09:45:35 -0400
commitafe3ad49e5da82c86d02c71508007400c3ea3949 (patch)
tree466b26e2b3bd75f6169a25d62c2b9f88a8b2af3c
parent5196625a158d6fd7ddd6701850a624bab55655a9 (diff)
downloadnixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.tar
nixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.tar.gz
nixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.tar.bz2
nixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.tar.lz
nixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.tar.xz
nixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.tar.zst
nixpkgs-afe3ad49e5da82c86d02c71508007400c3ea3949.zip
kpmcore: patch trustedprefixes
-rw-r--r--pkgs/development/libraries/kpmcore/default.nix6
-rw-r--r--pkgs/development/libraries/kpmcore/nixostrustedprefix.patch13
2 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/development/libraries/kpmcore/default.nix b/pkgs/development/libraries/kpmcore/default.nix
index 7b7794d3647..0145bcf20c5 100644
--- a/pkgs/development/libraries/kpmcore/default.nix
+++ b/pkgs/development/libraries/kpmcore/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-Ws20hKX2iDdke5yBBKXukVUD4OnLf1OmwlhW+jUXL24=";
   };
 
+  patches = [
+    ./nixostrustedprefix.patch
+  ];
+
   nativeBuildInputs = [ extra-cmake-modules ];
 
   buildInputs = [
@@ -29,6 +33,8 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     substituteInPlace src/util/CMakeLists.txt \
       --replace \$\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\} $out/share/polkit-1/actions
+    substituteInPlace src/backend/corebackend.cpp \
+      --replace /usr/share/polkit-1/actions/org.kde.kpmcore.externalcommand.policy $out/share/polkit-1/actions/org.kde.kpmcore.externalcommand.policy
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/kpmcore/nixostrustedprefix.patch b/pkgs/development/libraries/kpmcore/nixostrustedprefix.patch
new file mode 100644
index 00000000000..cb1eb68364d
--- /dev/null
+++ b/pkgs/development/libraries/kpmcore/nixostrustedprefix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/util/externalcommandhelper.cpp b/src/util/externalcommandhelper.cpp
+index a879c8d..3d7863b 100644
+--- a/src/util/externalcommandhelper.cpp
++++ b/src/util/externalcommandhelper.cpp
+@@ -387,7 +387,7 @@ QVariantMap ExternalCommandHelper::RunCommand(const QString& command, const QStr
+     if (dirname == QStringLiteral("bin") || dirname == QStringLiteral("sbin")) {
+         prefix.cdUp();
+     }
+-    if (trustedPrefixes.find(prefix.path()) == trustedPrefixes.end()) { // TODO: C++20: replace with contains
++    if (!prefix.path().startsWith(QStringLiteral("/nix/store")) && !prefix.path().startsWith(QStringLiteral("/run/current-system/sw"))) { // TODO: C++20: replace with contains
+         qInfo() << prefix.path() << "prefix is not one of the trusted command prefixes";
+         reply[QStringLiteral("success")] = false;
+         return reply;