Mercurial > dovecot > core-2.2
changeset 22978:91b975cdeb87
cassandra: Fix empty binary parameters with prepared statements
Fixes:
Panic: Trying to allocate 0 bytes
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 24 May 2018 01:32:40 +0300 |
parents | 2f1353b11b6b |
children | ace8424d6f65 |
files | src/lib-sql/driver-cassandra.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-sql/driver-cassandra.c Tue May 22 16:06:15 2018 +0300 +++ b/src/lib-sql/driver-cassandra.c Thu May 24 01:32:40 2018 +0300 @@ -166,7 +166,7 @@ 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; }; @@ -1973,7 +1973,8 @@ } 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; } }