From 06f0b23a78ab15b6f3d4465e77ac1bdc747524d4 Mon Sep 17 00:00:00 2001 From: Monty Date: Sun, 17 Dec 2017 17:53:53 +0200 Subject: [PATCH] Fixed memory leak in my_rocks rocksdb_sys_vars.rocksdb_update_cf_options_basic.test failed with reports about not freed memory. --- storage/rocksdb/ha_rocksdb.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index 98a9785713a..8857b2e8cba 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -12337,6 +12337,7 @@ void rocksdb_set_update_cf_options(THD *const /* unused */, // Basic sanity checking and parsing the options into a map. If this fails // then there's no point to proceed. if (!Rdb_cf_options::parse_cf_options(val, &option_map)) { + my_free(*reinterpret_cast(var_ptr)); *reinterpret_cast(var_ptr) = nullptr; // NO_LINT_DEBUG @@ -12405,6 +12406,7 @@ void rocksdb_set_update_cf_options(THD *const /* unused */, // the CF options. This will results in consistent behavior and avoids // dealing with cases when only a subset of CF-s was successfully updated. if (val) { + my_free(*reinterpret_cast(var_ptr)); *reinterpret_cast(var_ptr) = my_strdup(val, MYF(0)); } else { *reinterpret_cast(var_ptr) = nullptr;