The return value from ASN1_STRING_new() was not being checked which could
lead to a NULL deref in the event of a malloc failure. Also fixed a mem
leak in the error path.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit 0c7ca4033d)
The stuff in here is based on patches supplied to me by Steven Schoch <schoch@sheba.arc.nasa.gov> to do DSS. I have since modified a them a little but a debt of gratitude is due for doing the initial work.