diff --git a/main/sorcery.c b/main/sorcery.c index 8e48403d96def495da147d439c7c6fcf33dc37a7..7a4a7f324ad5bf224f770d1119d50d13c3eef1ea 100644 --- a/main/sorcery.c +++ b/main/sorcery.c @@ -1597,10 +1597,13 @@ 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)) + if (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; + ast_free(buf); + ast_debug(5, "Skipping field '%s' for object type '%s'\n", + object_field->name, object_type->name); + continue; } ast_free(buf);