Commit 00210aad authored by Simon McVittie's avatar Simon McVittie

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: #1923Signed-off-by: Simon McVittie's avatarSimon McVittie <smcv@collabora.com>
parent 9b8ff414
Pipeline #127518 passed with stages
in 33 minutes and 6 seconds
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment