diff --git a/src/core/special-vars.c b/src/core/special-vars.c index 4b1f535b..2556cd63 100644 --- a/src/core/special-vars.c +++ b/src/core/special-vars.c @@ -362,6 +362,8 @@ char *parse_special(char **cmd, SERVER_REC *server, void *item, int brackets, nest_free; *free_ret = FALSE; + if (**cmd == '\0') + return NULL; command = **cmd; (*cmd)++; switch (command) { diff --git a/src/fe-common/core/themes.c b/src/fe-common/core/themes.c index f1b871b2..514dd377 100644 --- a/src/fe-common/core/themes.c +++ b/src/fe-common/core/themes.c @@ -146,7 +146,9 @@ static void theme_format_append_variable(GString *str, const char **format) value = parse_special((char **) format, NULL, NULL, args, &free_ret, NULL, PARSE_FLAG_ONLY_ARGS); if (free_ret) g_free(value); - (*format)++; + + if (**format != '\0') + (*format)++; /* append the variable name */ value = g_strndup(orig, (int) (*format-orig));