[Tarantool-patches] [PATCH 2/2] box/applier: add missing diag_set on region_alloc failure
Cyrill Gorcunov
gorcunov at gmail.com
Fri Jan 17 16:29:29 MSK 2020
In case if we're hitting memory limit allocting triggers
we should setup diag error to prevent nil dereference
in diag_raise call for example from applier_apply_tx.
Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
---
src/box/applier.cc | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/box/applier.cc b/src/box/applier.cc
index 1a051e8c4..5b1efdabe 100644
--- a/src/box/applier.cc
+++ b/src/box/applier.cc
@@ -714,8 +714,11 @@ applier_apply_tx(struct stailq *rows)
sizeof(struct trigger));
on_commit = (struct trigger *)region_alloc(&txn->region,
sizeof(struct trigger));
- if (on_rollback == NULL || on_commit == NULL)
+ if (on_rollback == NULL || on_commit == NULL) {
+ diag_set(OutOfMemory, sizeof(struct trigger),
+ "region_alloc", "on_rollback/on_commit");
goto rollback;
+ }
trigger_create(on_rollback, applier_txn_rollback_cb, NULL, NULL);
txn_on_rollback(txn, on_rollback);
--
2.20.1
More information about the Tarantool-patches
mailing list