From 49544d7bb8ff97e970aba4a5e3d83be14e2c696c Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 24 May 2018 01:32:40 +0300 Subject: [PATCH] cassandra: Fix empty binary parameters with prepared statements Fixes: Panic: Trying to allocate 0 bytes --- src/lib-sql/driver-cassandra.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib-sql/driver-cassandra.c b/src/lib-sql/driver-cassandra.c index 713e957bc7..80a1fceddd 100644 --- a/src/lib-sql/driver-cassandra.c +++ b/src/lib-sql/driver-cassandra.c @@ -166,7 +166,7 @@ struct cassandra_sql_arg { unsigned int column_idx; char *value_str; - unsigned char *value_binary; + const unsigned char *value_binary; size_t value_binary_size; int64_t value_int64; }; @@ -1976,7 +1976,8 @@ driver_cassandra_statement_bind_binary(struct sql_statement *_stmt, } else if (stmt->prep != NULL) { struct cassandra_sql_arg *arg = driver_cassandra_add_pending_arg(stmt, column_idx); - arg->value_binary = p_memdup(_stmt->pool, value, value_size); + arg->value_binary = value_size == 0 ? &uchar_nul : + p_memdup(_stmt->pool, value, value_size); arg->value_binary_size = value_size; } } -- 2.47.3