diff --git a/lib/hx509/hxtool.c b/lib/hx509/hxtool.c index b43d5db7b..d646449e5 100644 --- a/lib/hx509/hxtool.c +++ b/lib/hx509/hxtool.c @@ -853,6 +853,7 @@ request_create(struct request_create_options *opt, int argc, char **argv) ret = _hx509_request_set_SubjectPublicKeyInfo(context, req, &key); + free_SubjectPublicKeyInfo(&key); if (ret) errx(1, "_hx509_request_set_SubjectPublicKeyInfo: %d", ret); diff --git a/lib/hx509/req.c b/lib/hx509/req.c index 84b03c2d5..357ed204f 100644 --- a/lib/hx509/req.c +++ b/lib/hx509/req.c @@ -59,7 +59,13 @@ _hx509_request_init(hx509_context context, hx509_request *req) void _hx509_request_free(hx509_request *req) { + if ((*req)->name) + hx509_name_free(&(*req)->name); + free_SubjectPublicKeyInfo(&(*req)->key); + free_ExtKeyUsage(&(*req)->eku); + free_GeneralNames(&(*req)->san); free(*req); + memset(*req, 0, sizeof(**req)); *req = NULL; }