From 862f16285f4be0ce9597a4e190aa16287c773b92 Mon Sep 17 00:00:00 2001 From: Richard Stanway Date: Sun, 23 Feb 2020 04:02:42 +0100 Subject: [PATCH] libobs: Don't strip whitespace from config values A plugin that saves whitespace-only data would crash OBS on startup as the whitespace stripping would send the string length negative. While that bug is fixed in this commit, there is also no good reason that OBS is stripping whitespace to begin with. All data going into the configs should be well formed and some plugins legitimately wish to save whitespace as a config option (eg for search / replace characters). --- libobs/util/config-file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libobs/util/config-file.c b/libobs/util/config-file.c index cdd447bb7..a8db81ee3 100644 --- a/libobs/util/config-file.c +++ b/libobs/util/config-file.c @@ -95,7 +95,7 @@ config_t *config_create(const char *file) static inline void remove_ref_whitespace(struct strref *ref) { if (ref->array) { - while (is_whitespace(*ref->array)) { + while (ref->len && is_whitespace(*ref->array)) { ref->array++; ref->len--; } @@ -130,7 +130,7 @@ static bool config_parse_string(struct lexer *lex, struct strref *ref, char end) strref_add(ref, &token.text); } - remove_ref_whitespace(ref); + //remove_ref_whitespace(ref); return success; }