]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Allow configuration file values to be quoted 1015/head
authorStewart Brodie <stewart@metahusky.net>
Tue, 10 May 2016 12:57:00 +0000 (13:57 +0100)
committerStewart Brodie <stewart@metahusky.net>
Tue, 10 May 2016 12:57:00 +0000 (13:57 +0100)
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 28218713d390805a53df34b68607d72d7108d308..14a76b2ec13004b582ec7f5797b6890bddad273f 100644 (file)
@@ -1964,6 +1964,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);