[systemd-devel] [PATCHv5] tmpfiles, man: Add xattr support to tmpfiles

Maciej Wereski m.wereski at partner.samsung.com
Thu Jan 16 06:42:38 PST 2014


11.12.2013 at 15:15 Lennart Poettering <lennart at poettering.net> wrote:

> On Wed, 11.12.13 14:24, Maciej Wereski (m.wereski at partner.samsung.com)  
> wrote:
>
>> >>+        xattr = new0(char, strlen(i->argument)+1);
>> >>+        if (!xattr)
>> >>+                return log_oom();
>> >>+
>> >>+        tmp = strv_split(i->argument, WHITESPACE);
>> >>+        if (!tmp)
>> >>+                return log_oom();
>> >>+
>> >>+        strv_len = strv_length(tmp);
>> >>+        for (n = 0; n < strv_len; ++n) {
>> >
>> >Sounds like a job for the STRV_FOREACH() macro. Since you don't  
>> actually
>> >need the strv as strv here it sounds like you actually really want to
>> >use FOREACH_WORD_QUOTED() for this, which will also do the unquoting  
>> for
>> >you.
>>
>> Well, FOREACH_WORD_QUOTED() won't work properly, because quotation marks
>> aren't first chars in strings (e.g. user.name="John Smith"). Maybe  
>> better
>> idea would be to introduce mandatory separator (e.g. semicolon) instead  
>> of
>> quotation marks.
>
> Yeah, FOREACH_WORD_QUOTED() is quite badly designed. We should fix it to
> do somewhat sane quoting and escaping. I'll look into it.

There is one problem with using it in this patch. In my case quotation  
mark isn't first char of the string, so using pointer and length won't get  
rid of it. String needs to be modified.

regards,
-- 
Maciej Wereski
Samsung R&D Institute Poland
Samsung Electronics
m.wereski at partner.samsung.com


More information about the systemd-devel mailing list