[openwrt/openwrt] include/package-pack: escape package description for APK mkpkg

LEDE Commits lede-commits at lists.infradead.org
Sun Nov 17 10:11:32 PST 2024


ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/43455f1075855d9ed2760f70b2d8acbe8e8bb16c

commit 43455f1075855d9ed2760f70b2d8acbe8e8bb16c
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Sun Nov 17 19:09:31 2024 +0100

    include/package-pack: escape package description for APK mkpkg
    
    Escape special char for package description for APK mkpkg as the
    description is passed as an args to mkpkg with --info option and can
    easily escape from the "".
    
    Currently escaped char `, $, ", \.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/package-pack.mk | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/package-pack.mk b/include/package-pack.mk
index 9d06c8b647..830b39f8d7 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -8,6 +8,10 @@ endif
 
 IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg
 
+define description_escape
+$(subst `,\`,$(subst $$,\$$,$(subst ",\",$(subst \,\\,$(1)))))
+endef
+
 # Generates a make statement to return a wildcard for candidate ipkg files
 # 1: package name
 define gen_package_wildcard
@@ -339,7 +343,7 @@ else
 	$(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk mkpkg \
 	  --info "name:$(1)$$(ABIV_$(1))" \
 	  --info "version:$(VERSION)" \
-	  --info "description:$$(strip $$(Package/$(1)/description))" \
+	  --info "description:$$(call description_escape,$$(strip $$(Package/$(1)/description)))" \
 	  --info "arch:$(PKGARCH)" \
 	  --info "license:$(LICENSE)" \
 	  --info "origin:$(SOURCE)" \




More information about the lede-commits mailing list