diff --git a/libr/util/r_json.c b/libr/util/r_json.c index 12ad3f9bdb..04ee4fe142 100644 --- a/libr/util/r_json.c +++ b/libr/util/r_json.c @@ -136,6 +136,7 @@ R_API void r_json_object_add (RJSVar* object, const char* name, RJSVar* value) { } c = (char**) realloc (object->object.n, len * sizeof (char*)); if (!c) { + free (v); return; } v[len - 1] = value; diff --git a/libr/util/r_x509.c b/libr/util/r_x509.c index 5839615ebf..22cbb370df 100644 --- a/libr/util/r_x509.c +++ b/libr/util/r_x509.c @@ -820,7 +820,10 @@ RJSVar *r_x509_extensions_json (RX509Extensions* exts) { for (i = 0; i < exts->length; ++i) { RX509Extension *e = exts->extensions[i]; RJSVar* obj = r_json_object_new (); - if (!e || !obj) continue; + if (!e || !obj) { + r_json_var_free (obj); + continue; + } if (e->extnID) { r_json_object_add (obj, "OID", r_json_string_new (e->extnID->string)); }