mirror of
https://github.com/flatpak/flatpak.git
synced 2026-02-01 11:31:21 -05:00
context: Use flatpak_parse_env_block()
No change in behavior, except minor wording of the error message.
This commit is contained in:
committed by
Simon McVittie
parent
2804cd4116
commit
5a7ea354d3
@@ -1243,37 +1243,22 @@ flatpak_context_parse_env_block (FlatpakContext *context,
|
||||
gsize length,
|
||||
GError **error)
|
||||
{
|
||||
const char *p = data;
|
||||
gsize remaining = length;
|
||||
g_auto(GStrv) env_vars = NULL;
|
||||
int i;
|
||||
|
||||
/* env_block might not be \0-terminated */
|
||||
while (remaining > 0)
|
||||
env_vars = flatpak_parse_env_block (data, length, error);
|
||||
if (env_vars == NULL)
|
||||
return FALSE;
|
||||
|
||||
for (i = 0; env_vars[i] != NULL; i++)
|
||||
{
|
||||
size_t len = strnlen (p, remaining);
|
||||
const char *equals;
|
||||
g_autofree char *env_var = NULL;
|
||||
g_autofree char *env_value = NULL;
|
||||
g_auto(GStrv) split = g_strsplit (env_vars[i], "=", 2);
|
||||
|
||||
g_assert (len <= remaining);
|
||||
g_assert (g_strv_length (split) == 2);
|
||||
g_assert (split[0][0] != '\0');
|
||||
|
||||
equals = memchr (p, '=', len);
|
||||
|
||||
if (equals == NULL || equals == p)
|
||||
return glnx_throw (error,
|
||||
"Environment variable must be given in the form VARIABLE=VALUE, not %.*s", (int) len, p);
|
||||
|
||||
env_var = g_strndup (p, equals - p);
|
||||
env_value = g_strndup (equals + 1, len - (equals - p) - 1);
|
||||
flatpak_context_set_env_var (context, env_var, env_value);
|
||||
p += len;
|
||||
remaining -= len;
|
||||
|
||||
if (remaining > 0)
|
||||
{
|
||||
g_assert (*p == '\0');
|
||||
p += 1;
|
||||
remaining -= 1;
|
||||
}
|
||||
flatpak_context_set_env_var (context,
|
||||
split[0], split[1]);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
Reference in New Issue
Block a user