luci-app-opkg: relax dependency parsing
authorJo-Philipp Wich <jo@mein.io>
Fri, 30 Sep 2022 07:59:39 +0000 (09:59 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 30 Sep 2022 07:59:39 +0000 (09:59 +0200)
Align depdendency parse logic with opkg to properly process certain
malformed dependency specifications. In particular do not require a
depdendency specification to end after the closing paren of a version
constraint and perform non-greedy matching in order to extract the
first version constraint only.

Fixes: #5997
Ref: https://forum.openwrt.org/t/x/138328
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js

index 311078a22c5b481de4d51646ba373cde92efeebf..dd69161c8254067bfb7bea9cf1a135bc2d959b6b 100644 (file)
@@ -601,7 +601,7 @@ function renderDependencies(depends, info, flat)
                if (deps[i] === 'libc')
                        continue;
 
-               if (deps[i].match(/^(.+)\s+\((<=|>=|<<|>>|<|>|=)(.+)\)$/)) {
+               if (deps[i].match(/^(.+?)\s+\((<=|>=|<<|>>|<|>|=)(.+?)\)/)) {
                        dep = RegExp.$1.trim();
                        vop = RegExp.$2.trim();
                        ver = RegExp.$3.trim();