From: antlers <autumnalantlers@gmail.com>
To: 54846@debbugs.gnu.org
Cc: antlers <autumnalantlers@gmail.com>
Subject: [bug#54846] [PATCH] gnu: linux: Escape the values of string-type kconfig options
Date: Sun, 10 Apr 2022 19:24:10 -0700 [thread overview]
Message-ID: <20220411022410.5606-1-autumnalantlers@gmail.com> (raw)
* gnu/packages/linux.scm (config->string): add escape-string
Handles characters within the set
(char-set-intersection char-set:ascii char-set:printing), removing
those which are known to be unsupported.
---
gnu/packages/linux.scm | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index b31fe0a580..60ae668fd9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -761,6 +761,22 @@ (define %bpf-extra-linux-options
("CONFIG_IKHEADERS" . #t)))
(define (config->string options)
+ (define (escape-string str)
+ "Returns STR with the escapes necessary to be read as a string-type
+ option's value. Handles characters within the set (char-set-intersection
+ char-set:ascii char-set:printing), removing those which are known to be
+ unsupported."
+ (fold (match-lambda* (((match? fmt) str)
+ (transform-string str match?
+ (cut format #f fmt <>))))
+ str
+ `((#\# "") ; No known way to escape # characters.
+ (#\$ "$~a")
+ ("\"\\'`" "\\~a")
+ (";:()#" "\\\\~a")
+ ("|" "\\\\\\~a")
+ ;; No support for tabs, newlines, etc.
+ (,(char-set->string (ucs-range->char-set 9 14)) ""))))
(string-join (map (match-lambda
((option . 'm)
(string-append option "=m"))
@@ -769,7 +785,9 @@ (define (config->string options)
((option . #f)
(string-append option "=n"))
((option . string)
- (string-append option "=\"" string "\"")))
+ (string-append option "=\""
+ (escape-string string)
+ "\"")))
options)
"\n"))
--
2.34.0
next reply other threads:[~2022-04-11 2:25 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-11 2:24 antlers [this message]
2022-04-11 5:08 ` [bug#54713] [PATCH] gnu: linux: Escape the values of string-type kconfig options Elijah Harding
2022-04-12 21:39 ` [bug#54846] " Ludovic Courtès
2022-04-28 12:16 ` Ludovic Courtès
2022-04-28 20:18 ` Antlers
2022-05-08 4:48 ` antlers
2022-05-17 15:54 ` bug#54846: " Antlers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220411022410.5606-1-autumnalantlers@gmail.com \
--to=autumnalantlers@gmail.com \
--cc=54846@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.