From 9e48db8d39e9d23f64b8e5643d05aa497e56e0af Mon Sep 17 00:00:00 2001 From: Eman Resu <78693624+quatquatt@users.noreply.github.com> Date: Tue, 28 Apr 2026 13:03:54 -0400 Subject: [PATCH] lib.licenses: prevent subcalls for non-simple licenses --- lib/licenses/helpers.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/licenses/helpers.nix b/lib/licenses/helpers.nix index ea02d2d2a3bb..f6deab63614d 100644 --- a/lib/licenses/helpers.nix +++ b/lib/licenses/helpers.nix @@ -25,24 +25,25 @@ rec { let OR = if permissive then lib.any else lib.all; AND = if permissive then lib.all else lib.any; + evaluateSubProperty = evaluateProperty predicate permissive; in license: if license.licenseType == "simple" then predicate license else if license.licenseType == "compound" then if license.operator == "OR" then - OR (x: evaluateProperty predicate permissive x) license.licenses + OR evaluateSubProperty license.licenses else if license.operator == "AND" then - AND (x: evaluateProperty predicate permissive x) license.licenses + AND evaluateSubProperty license.licenses else throw "Unknown license operator" else if license.licenseType == "exception" then - AND (x: evaluateProperty predicate permissive x) [ + AND evaluateSubProperty [ license.license license.exception ] else if license.licenseType == "plus" then - evaluateProperty predicate permissive license.license + evaluateSubProperty license.license else throw "Unknown license type or legacy license";