fgetval(): handle extra separators betwee key and value

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2022-12-06 14:00:31 +01:00
parent 70c2939596
commit 3d9cbaf040
+10 -3
View File
@@ -132,9 +132,16 @@ static inline char *fgetval(char *line, const char *key, char *sep)
return NULL;
}
ptr = strsep(&str, sep);
if (!ptr)
goto fail;
/*
* Check if we should strip optional separator, e.g.,
* 'foo = bar' => '= bar' should be stripped to 'bar'
*/
while (str && strchr(sep, str[0])) {
ptr = strsep(&str, sep);
if (!ptr)
goto fail;
}
ptr = str;
if (*ptr == '"' || *ptr == '\'') {
char *end = &ptr[strlen(ptr) - 1];