summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2018-10-18 15:34:09 +0100
committerSimon McVittie <smcv@collabora.com>2019-04-17 13:38:05 +0100
commit2e4a72ed51684225c8de7047e415744c2113ed6d (patch)
tree59628dafed7f1c20b0915061805d7c533b3062fd
parent2b099429862294cf33f6fdd7b3c77aedfc8308a2 (diff)
downloaddbus-2e4a72ed51684225c8de7047e415744c2113ed6d.tar.gz
desktop-file: Justify implementation of is_valid_section_name()
Signed-off-by: Simon McVittie <smcv@collabora.com> (cherry picked from commit 99580298f305e1e2426f0c016d797a1ff9ea0b79)
-rw-r--r--bus/desktop-file.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/bus/desktop-file.c b/bus/desktop-file.c
index d91439b3..fd4f0d31 100644
--- a/bus/desktop-file.c
+++ b/bus/desktop-file.c
@@ -378,7 +378,12 @@ parse_comment_or_blank (BusDesktopFileParser *parser)
static dbus_bool_t
is_valid_section_name (const char *name)
{
- /* 5. Group names may contain all ASCII characters except for control characters and '[' and ']'. */
+ /* 5. Group names may contain all ASCII characters except for control characters and '[' and ']'.
+ *
+ * We don't use isprint() here because it's locale-dependent. ASCII
+ * characters <= 0x1f and 0x7f are control characters, and bytes with
+ * values >= 0x80 aren't ASCII. 0x20 is a space, which we must allow,
+ * not least because DBUS_SERVICE_SECTION contains one. */
while (*name)
{