diff options
author | Jenkins2 <jenkins2@gerrit.asterisk.org> | 2018-02-03 09:41:42 -0600 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2018-02-03 09:41:42 -0600 |
commit | df948d1a09b04b0ef1a20cccec314fde54200e5a (patch) | |
tree | b394d30cb75f6bd6ba89536f927b56e845235de7 | |
parent | 4142eacfef109d5ac850deee6027a81f37fcc314 (diff) | |
parent | 3419a048b95cd5331b7fb6495df298f01b54327c (diff) |
Merge "manager.c: Fix potential memory leak and corruption."
-rw-r--r-- | main/manager.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/main/manager.c b/main/manager.c index 3aa910501..a60c69bd1 100644 --- a/main/manager.c +++ b/main/manager.c @@ -9497,23 +9497,16 @@ struct ast_datastore *astman_datastore_find(struct mansession *s, const struct a } int ast_str_append_event_header(struct ast_str **fields_string, - const char *header, const char *value) + const char *header, const char *value) { - struct ast_str *working_str = *fields_string; - - if (!working_str) { - working_str = ast_str_create(128); - if (!working_str) { + if (!*fields_string) { + *fields_string = ast_str_create(128); + if (!*fields_string) { return -1; } - *fields_string = working_str; } - ast_str_append(&working_str, 0, - "%s: %s\r\n", - header, value); - - return 0; + return (ast_str_append(fields_string, 0, "%s: %s\r\n", header, value) < 0) ? -1 : 0; } static void manager_event_blob_dtor(void *obj) |