aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--degesch.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/degesch.c b/degesch.c
index 8f8424a..3edbe15 100644
--- a/degesch.c
+++ b/degesch.c
@@ -7276,7 +7276,16 @@ plugin_config_name (struct plugin *self)
begin = p;
size_t len = strcspn (begin, ".");
- return len ? xstrndup (begin, len) : NULL;
+ if (!len)
+ return NULL;
+
+ // XXX: we might also allow arbitrary strings as object keys (except dots)
+ // taking care to use the "" syntax while serializing
+ char *copy = xstrndup (begin, len);
+ for (char *p = copy; *p; p++)
+ if (!config_tokenizer_is_word_char (*p))
+ *p = '_';
+ return copy;
}
// --- Lua ---------------------------------------------------------------------