Skip to content

Commit 3666596

Browse files
committed
define: disallow exec after free (#141)
1 parent ead126a commit 3666596

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/define/manage.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ static void define_free(sqlite3_context* ctx, int argc, sqlite3_value** argv) {}
188188
static void define_exec(sqlite3_context* ctx, int argc, sqlite3_value** argv) {
189189
int ret = SQLITE_OK;
190190
sqlite3_stmt* stmt = sqlite3_user_data(ctx);
191+
if (cache_head == NULL) {
192+
// Calling defined functions after define_free is not allowed.
193+
sqlite3_result_error_code(ctx, SQLITE_MISUSE);
194+
return;
195+
}
191196
for (int i = 0; i < argc; i++) {
192197
if ((ret = sqlite3_bind_value(stmt, i + 1, argv[i])) != SQLITE_OK) {
193198
sqlite3_reset(stmt);

0 commit comments

Comments
 (0)