From f2e3a498109d75d99ebd539e7c9603529128efd0 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 21 Jul 2013 20:26:56 +0200 Subject: m_option: fix memory leak on error path --- core/m_option.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/m_option.c b/core/m_option.c index ff27f9bcc7..59864d93ad 100644 --- a/core/m_option.c +++ b/core/m_option.c @@ -2027,6 +2027,9 @@ static int get_obj_params(struct bstr opt_name, struct bstr name, if (r > 0 && ret) { MP_TARRAY_APPEND(NULL, args, num_args, bstrto0(NULL, fname)); MP_TARRAY_APPEND(NULL, args, num_args, bstrto0(NULL, fval)); + MP_TARRAY_APPEND(NULL, args, num_args, NULL); + MP_TARRAY_APPEND(NULL, args, num_args, NULL); + num_args -= 2; } if (!bstr_eatstart0(pstr, ":")) @@ -2035,8 +2038,6 @@ static int get_obj_params(struct bstr opt_name, struct bstr name, if (ret) { if (num_args > 0) { - for (int n = 0; n < 2; n++) - MP_TARRAY_APPEND(NULL, args, num_args, NULL); *ret = args; args = NULL; } else { @@ -2051,6 +2052,7 @@ print_help: ; r = M_OPT_EXIT - 1; exit: + free_str_list(&args); talloc_free(config); return r; } -- cgit v1.2.3