From 568153efb9dafa71883f9fd27d607bd59cadceee Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Sun, 6 Nov 2016 21:35:44 +0200 Subject: [PATCH] Fix buflen calculation in classify qc_sqlite.c is now strict as far as buffers and payloads goes. --- query_classifier/test/classify.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/query_classifier/test/classify.c b/query_classifier/test/classify.c index 9a51cc9fe..c656abae3 100644 --- a/query_classifier/test/classify.c +++ b/query_classifier/test/classify.c @@ -196,10 +196,12 @@ int test(FILE* input, FILE* expected) { tok = strpbrk(strbuff, ";"); unsigned int qlen = tok - strbuff + 1; - GWBUF* buff = gwbuf_alloc(qlen + 6); - *((unsigned char*)(GWBUF_DATA(buff))) = qlen; - *((unsigned char*)(GWBUF_DATA(buff) + 1)) = (qlen >> 8); - *((unsigned char*)(GWBUF_DATA(buff) + 2)) = (qlen >> 16); + unsigned int payload_len = qlen + 1; + unsigned int buf_len = payload_len + 4; + GWBUF* buff = gwbuf_alloc(buf_len); + *((unsigned char*)(GWBUF_DATA(buff))) = payload_len; + *((unsigned char*)(GWBUF_DATA(buff) + 1)) = (payload_len >> 8); + *((unsigned char*)(GWBUF_DATA(buff) + 2)) = (payload_len >> 16); *((unsigned char*)(GWBUF_DATA(buff) + 3)) = 0x00; *((unsigned char*)(GWBUF_DATA(buff) + 4)) = 0x03; memcpy(GWBUF_DATA(buff) + 5, strbuff, qlen);