json: Fix off-nominal json ref counting issues.

* Fixed off-nominal json ref counting issue with using the following API
calls: ast_json_object_set() and ast_json_array_append().

* Fixed off-nominal error reporting in ast_ari_endpoints_list().

* Fixed some miscellaneous off-nominal json ref counting issues in
report_receive_fax_status() and dial_to_json().


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@408713 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2014-02-21 17:49:07 +00:00
parent 8090faebf1
commit f064222b89
8 changed files with 25 additions and 38 deletions

View File

@@ -1095,8 +1095,7 @@ struct ast_json *ast_sorcery_objectset_json_create(const struct ast_sorcery *sor
for (field = tmp; field; field = field->next) {
struct ast_json *value = ast_json_string_create(field->value);
if (value && ast_json_object_set(json, field->name, value)) {
ast_json_unref(value);
if (!value || ast_json_object_set(json, field->name, value)) {
res = -1;
}
}
@@ -1106,10 +1105,9 @@ struct ast_json *ast_sorcery_objectset_json_create(const struct ast_sorcery *sor
char *buf = NULL;
struct ast_json *value = NULL;
if ((res = object_field->handler(object, object_field->args, &buf)) ||
!(value = ast_json_string_create(buf)) ||
ast_json_object_set(json, object_field->name, value)) {
ast_json_unref(value);
if ((res = object_field->handler(object, object_field->args, &buf))
|| !(value = ast_json_string_create(buf))
|| ast_json_object_set(json, object_field->name, value)) {
res = -1;
}