From d2964e5c24e538d7ba4a998115252a4c253ae7bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Martign=C3=A8ne?= Date: Tue, 10 Dec 2024 10:41:55 +0100 Subject: [PATCH] Fix undefined behavior related to function pointer cast --- src/cipher_common.c | 3 ++- src/sqlite3mc.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cipher_common.c b/src/cipher_common.c index 2075a78..00b9a29 100644 --- a/src/cipher_common.c +++ b/src/cipher_common.c @@ -116,8 +116,9 @@ sqlite3mcCloneCodecParameterTable() } SQLITE_PRIVATE void -sqlite3mcFreeCodecParameterTable(CodecParameter* codecParams) +sqlite3mcFreeCodecParameterTable(void* ptr) { + CodecParameter* codecParams = (CodecParameter*)ptr; sqlite3_free(codecParams[0].m_params); sqlite3_free(codecParams); } diff --git a/src/sqlite3mc.c b/src/sqlite3mc.c index 0049954..be44379 100644 --- a/src/sqlite3mc.c +++ b/src/sqlite3mc.c @@ -409,7 +409,7 @@ mcRegisterCodecExtensions(sqlite3* db, char** pzErrMsg, const sqlite3_api_routin if (rc == SQLITE_OK) { rc = sqlite3_create_function_v2(db, "sqlite3mc_config_table", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, - codecParameterTable, sqlite3mcConfigTable, 0, 0, (void(*)(void*)) sqlite3mcFreeCodecParameterTable); + codecParameterTable, sqlite3mcConfigTable, 0, 0, sqlite3mcFreeCodecParameterTable); } rc = (codecParameterTable != NULL) ? SQLITE_OK : SQLITE_NOMEM;