]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Allow configuration file values to be quoted
authorStewart Brodie <stewart@metahusky.net>
Tue, 10 May 2016 12:57:00 +0000 (13:57 +0100)
committerStéphane Graber <stgraber@ubuntu.com>
Thu, 17 Nov 2016 23:27:54 +0000 (18:27 -0500)
If the value starts and ends with matching quote characters, those
characters are stripped automatically.   Quote characters are the
single quote (') or double quote (").  The quote removal is done after
the whitespace trimming.

This is needed particularly in order that lxc.environment values may
have trailing spaces.  However, the quote removal is done for all values
in the parse_line function, as it has non-const access to the value.

Signed-off-by: Stewart Brodie <stewart@metahusky.net>
src/lxc/confile.c

index fed792d1b36b97f116bcc6782b4ae96aa32aca92..31efd77dce60b88dad220018aa64431050de5a10 100644 (file)
@@ -1707,6 +1707,14 @@ static int parse_line(char *buffer, void *data)
        value += lxc_char_left_gc(value, strlen(value));
        value[lxc_char_right_gc(value, strlen(value))] = '\0';
 
+       if (*value == '\'' || *value == '\"') {
+               size_t len = strlen(value);
+               if (len > 1 && value[len-1] == *value) {
+                       value[len-1] = '\0';
+                       value++;
+               }
+       }
+
        config = lxc_getconfig(key);
        if (!config) {
                ERROR("unknown key %s", key);