Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ruleproc: repair use-after-free, new[]/free mismatch
==2421730==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs free) on 0x602000017b50 f0 __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52 f1 propval_free(unsigned short, void*) lib/mapi/propval.cpp:401 f2 tpropval_array_free_internal(TPROPVAL_ARRAY*) lib/mapi/tpropval_array.cpp:112 f3 message_content_free_internal(message_content*) lib/mapi/element_data.cpp:258 f4 message_content_free(message_content*) lib/mapi/element_data.cpp:269 f5 operator() lib/ruleproc.cpp:94 f6 ~unique_ptr /usr/include/c++/12/bits/unique_ptr.h:396 f7 ~rxparam lib/ruleproc.cpp:119 f8 exmdb_local_rules_execute lib/ruleproc.cpp:1266 f9 exmdb_local_deliverquota mda/exmdb_local/exmdb_local.cpp:426 f10 exmdb_local_hook mda/exmdb_local/exmdb_local.cpp:105 0x602000017b50 is located 0 bytes inside of 4-byte region [0x602000017b50,0x602000017b54) allocated by thread T5 here: f0 operator new[](unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:98 f1 std::__detail::_MakeUniq<char []>::__array std::make_unique<char []>(unsigned long) /usr/include/c++/12/bits/unique_ptr.h:1080 f2 alloc_context::alloc(unsigned long) include/gromox/util.hpp:28 f3 exmdb_local_alloc mda/exmdb_local/exmdb_local.cpp:235 f4 unsigned int* EXT_PULL::anew<unsigned int>() include/gromox/ext_buffer.hpp:219 f5 EXT_PULL::g_propval(unsigned short, void**) lib/mapi/ext_buffer.cpp:1030 f6 EXT_PULL::g_tagged_pv(TAGGED_PROPVAL*) lib/mapi/ext_buffer.cpp:1078 f7 EXT_PULL::g_tpropval_a(TPROPVAL_ARRAY*) lib/mapi/ext_buffer.cpp:1181 f8 EXT_PULL::g_msgctnt(message_content*) lib/mapi/ext_buffer.cpp:2116 f9 exmdb_pull lib/exmdb_ext.cpp:3535 f10 exmdb_ext_pull_response lib/exmdb_ext.cpp:3861 f11 gromox::exmdb_client_do_rpc lib/exmdb_client.cpp:542 f12 gromox::exmdb_client_remote::read_message lib/exmdb_rpc.cpp:1753 f13 run lib/ruleproc.cpp:1222 f14 exmdb_local_rules_execute lib/ruleproc.cpp:1265 f15 exmdb_local_deliverquota mda/exmdb_local/exmdb_local.cpp:426 f16 exmdb_local_hook mda/exmdb_local/exmdb_local.cpp:105 Fixes: gromox-2.41-54-g7ace89b32 References: GXL-581, GXF-2013
- Loading branch information