From 8c9408f24ab1c1aa094ed6386c6daf926b29a9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Higor=20Eur=C3=ADpedes?= Date: Wed, 10 Jun 2015 16:16:00 -0300 Subject: [PATCH] (libretro-db) Fix segfault --- libretro-db/query.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libretro-db/query.c b/libretro-db/query.c index 72775e0223..207157485f 100644 --- a/libretro-db/query.c +++ b/libretro-db/query.c @@ -516,10 +516,12 @@ static struct buffer parse_string(struct buffer buff, if (!*error) { - size_t nmemb = is_binstr ? (value->string.len + 1) / 2 : (value->string.len + 1); + size_t count; value->type = is_binstr ? RDT_BINARY : RDT_STRING; value->string.len = (buff.data + buff.offset) - str_start - 1; - value->string.buff = (char*)calloc(nmemb, sizeof(char)); + + count = is_binstr ? (value->string.len + 1) / 2 : (value->string.len + 1); + value->string.buff = (char*)calloc(count, sizeof(char)); if (!value->string.buff) raise_enomem(error); @@ -889,6 +891,7 @@ void libretrodb_query_free(void *q) free(real_q->root.argv); real_q->root.argv = NULL; + real_q->root.argc = 0; free(real_q); }