mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-08 18:36:17 +01:00
goption: Relax assertion to avoid being broken by kdeinit5
kdeinit5 overwrites argv, which in turn results in /proc/self/cmdline being overwritten. It seems that this is done in a way that does not necessarily guarantee that /proc/self/cmdline will end up NUL-terminated. However, g_file_get_contents() is documented to fill a buffer of size len + 1, where buffer[len] == '\0', even if the file's actual contents (from buffer[0] to buffer[len-1] inclusive) did not include a NUL; so we can safely relax this assertion slightly. Resolves: https://gitlab.gnome.org/GNOME/glib/issues/1923 Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
parent
9b8ff414c1
commit
00210aad87
@ -1833,8 +1833,10 @@ platform_get_argv0 (void)
|
||||
NULL))
|
||||
return NULL;
|
||||
|
||||
/* Sanity check for a NUL terminator. */
|
||||
g_assert (memchr (cmdline, 0, len));
|
||||
/* g_file_get_contents() guarantees to put a NUL immediately after the
|
||||
* file's contents (at cmdline[len] here), even if the file itself was
|
||||
* not NUL-terminated. */
|
||||
g_assert (memchr (cmdline, 0, len + 1));
|
||||
|
||||
/* We could just return cmdline, but I think it's better
|
||||
* to hold on to a smaller malloc block; the arguments
|
||||
|
Loading…
Reference in New Issue
Block a user