mbedtls: only free crt_parse when something came back
Mbedtls mbedtls_x509_crt_parse() returns 0 for success which is good. But it has a complicated idea about what to return on fail... if it couldn't make even one cert from the data, then it returns a negative return indicating the parsing problem and there is nothing to free. If it managed to parse at least one cert, instead it retuns a positive number indicating the number of certs it didn't parse successfully, and there is something to free. Adapt the code to understand this quirk.
想要评论请 注册 或 登录