Memory leaks in system.certificates implementation due to possible exception. Example:
https://github.com/ClickHouse/ClickHouse/pull/37142/files#diff-1e24e43bfc38cec9770c3cc831b14d045c8138a60d7b77de8d32d96f4a2387e7R110

ref #37142
{
    return
    {
        {"version",         std::make_shared<DataTypeNumber<Int32>>()},
        {"serial_number",   std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"signature_algo",  std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"issuer",          std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"not_before",      std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"not_after",       std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"subject",         std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"pkey_algo",       std::make_shared<DataTypeNullable>(std::make_shared<DataTypeString>())},
        {"path",            std::make_shared<DataTypeString>()},
        {"default",         std::make_shared<DataTypeNumber<UInt8>>()}
    };
}
#if USE_SSL
static std::unordered_set<std::string> parse_dir(const std::string & dir)