Fix buflen calculation in classify

qc_sqlite.c is now strict as far as buffers and payloads goes.
This commit is contained in:
Johan Wikman
2016-11-06 21:35:44 +02:00
parent add7577f08
commit 568153efb9

View File

@ -196,10 +196,12 @@ int test(FILE* input, FILE* expected)
{ {
tok = strpbrk(strbuff, ";"); tok = strpbrk(strbuff, ";");
unsigned int qlen = tok - strbuff + 1; unsigned int qlen = tok - strbuff + 1;
GWBUF* buff = gwbuf_alloc(qlen + 6); unsigned int payload_len = qlen + 1;
*((unsigned char*)(GWBUF_DATA(buff))) = qlen; unsigned int buf_len = payload_len + 4;
*((unsigned char*)(GWBUF_DATA(buff) + 1)) = (qlen >> 8); GWBUF* buff = gwbuf_alloc(buf_len);
*((unsigned char*)(GWBUF_DATA(buff) + 2)) = (qlen >> 16); *((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) + 3)) = 0x00;
*((unsigned char*)(GWBUF_DATA(buff) + 4)) = 0x03; *((unsigned char*)(GWBUF_DATA(buff) + 4)) = 0x03;
memcpy(GWBUF_DATA(buff) + 5, strbuff, qlen); memcpy(GWBUF_DATA(buff) + 5, strbuff, qlen);