Some code really wants to know whether there was a string list parsed,
so don't take the shortcut here, and always allocate a string list, even
if it is an empty one.
https://bugs.freedesktop.org/show_bug.cgi?id=62558
assert(data);
if (isempty(rvalue)) {
- /* Empty assignment resets the list */
+ char **empty;
+
+ /* Empty assignment resets the list. As a special rule
+ * we actually fill in a real empty array here rather
+ * than NULL, since some code wants to know if
+ * something was set at all... */
+ empty = strv_new(NULL, NULL);
+ if (!empty)
+ return log_oom();
+
strv_free(*sv);
- *sv = NULL;
+ *sv = empty;
return 0;
}