From be61a967e632fdf7836b6efb4e0fc2776d9d3e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 30 Jan 2020 08:59:57 +0000 Subject: [PATCH] ITS#9160 OOM handling in mdb tools --- libraries/liblmdb/mdb_dump.c | 4 ++++ libraries/liblmdb/mdb_stat.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libraries/liblmdb/mdb_dump.c b/libraries/liblmdb/mdb_dump.c index ee7dbe85d8..63b08d658d 100644 --- a/libraries/liblmdb/mdb_dump.c +++ b/libraries/liblmdb/mdb_dump.c @@ -279,6 +279,10 @@ int main(int argc, char *argv[]) continue; count++; str = malloc(key.mv_size+1); + if (!str) { + fprintf(stderr, "malloc failed\n"); + goto txn_abort; + } memcpy(str, key.mv_data, key.mv_size); str[key.mv_size] = '\0'; rc = mdb_open(txn, str, 0, &db2); diff --git a/libraries/liblmdb/mdb_stat.c b/libraries/liblmdb/mdb_stat.c index cb73e11322..f64475efe6 100644 --- a/libraries/liblmdb/mdb_stat.c +++ b/libraries/liblmdb/mdb_stat.c @@ -232,6 +232,10 @@ int main(int argc, char *argv[]) if (memchr(key.mv_data, '\0', key.mv_size)) continue; str = malloc(key.mv_size+1); + if (!str) { + fprintf(stderr, "malloc failed\n"); + goto txn_abort; + } memcpy(str, key.mv_data, key.mv_size); str[key.mv_size] = '\0'; rc = mdb_open(txn, str, 0, &db2);