fix the bug that mem_leak happen when failed open

This commit is contained in:
renju96
2023-05-08 06:38:41 +00:00
committed by ob-robot
parent 0619a0de82
commit b9fa44684e

View File

@ -167,6 +167,10 @@ int ObObjectDevice::open_for_reader(const char *pathname, void*& ctx)
ctx = (void*)reader; ctx = (void*)reader;
} }
} }
if (OB_FAIL(ret) && OB_NOT_NULL(reader)) {
reader_ctx_pool_.free(reader);
reader = nullptr;
}
return ret; return ret;
} }
@ -186,6 +190,10 @@ int ObObjectDevice::open_for_overwriter(const char *pathname, void*& ctx)
ctx = (void*)overwriter; ctx = (void*)overwriter;
} }
} }
if (OB_FAIL(ret) && OB_NOT_NULL(overwriter)) {
overwriter_ctx_pool_.free(overwriter);
overwriter = nullptr;
}
return ret; return ret;
} }
@ -252,6 +260,10 @@ int ObObjectDevice::open_for_appender(const char *pathname, ObIODOpts *opts, voi
ctx = appender; ctx = appender;
} }
} }
if (OB_FAIL(ret) && OB_NOT_NULL(appender)) {
appender_ctx_pool_.free(appender);
appender = nullptr;
}
return ret; return ret;
} }