desktop-file: Justify implementation of is_valid_section_name()
authorSimon McVittie <smcv@collabora.com>
Thu, 18 Oct 2018 14:34:09 +0000 (15:34 +0100)
committerSimon McVittie <smcv@collabora.com>
Wed, 17 Apr 2019 12:38:05 +0000 (13:38 +0100)
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit 99580298f305e1e2426f0c016d797a1ff9ea0b79)

bus/desktop-file.c

index d91439b..fd4f0d3 100644 (file)
@@ -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)
     {