From 4022110955d3932884eed2b04a8b7025a4b47219 Mon Sep 17 00:00:00 2001 From: Leonid Yuriev <leo@yuriev.ru> Date: Sat, 14 Sep 2019 18:48:07 +0300 Subject: [PATCH] mdbx: reset returning-by-pointer result on error. Change-Id: I5e0aa1eae343dc9acc36a95e4f7e11104efc83ce --- src/elements/core.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/elements/core.c b/src/elements/core.c index 3573061b..ccddc296 100644 --- a/src/elements/core.c +++ b/src/elements/core.c @@ -3616,10 +3616,12 @@ int mdbx_txn_begin(MDBX_env *env, MDBX_txn *parent, unsigned flags, int rc; unsigned size, tsize; - if (unlikely(!env || !ret)) + if (unlikely(!ret)) return MDBX_EINVAL; - *ret = NULL; + + if (unlikely(!env)) + return MDBX_EINVAL; if (unlikely(env->me_signature != MDBX_ME_SIGNATURE)) return MDBX_EBADSIGN; @@ -9993,7 +9995,11 @@ static int mdbx_cursor_init(MDBX_cursor *mc, MDBX_txn *txn, MDBX_dbi dbi) { } int mdbx_cursor_open(MDBX_txn *txn, MDBX_dbi dbi, MDBX_cursor **ret) { - if (unlikely(!ret || !txn)) + if (unlikely(!ret)) + return MDBX_EINVAL; + *ret = NULL; + + if (unlikely(!txn)) return MDBX_EINVAL; if (unlikely(txn->mt_signature != MDBX_MT_SIGNATURE))