From f60a0e005e92529ed9f2bb1ac6fcf1bcb0366059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=B6r=C3=B6k=20Edvin?= Date: Mon, 29 Jun 2009 17:56:47 +0300 Subject: [PATCH] Better error messages for bytecode loader. --- libclamav/bytecode.c | 13 ++++++++++--- libclamav/clambc.h | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libclamav/bytecode.c b/libclamav/bytecode.c index 5e90716ec..ff4cca7e7 100644 --- a/libclamav/bytecode.c +++ b/libclamav/bytecode.c @@ -464,26 +464,33 @@ int cli_bytecode_load(struct cli_bc *bc, FILE *f, struct cli_dbio *dbio) while (cli_dbgets(buffer, FILEBUFF, f, dbio)) { int rc; cli_chomp(buffer); + row++; switch (state) { case PARSE_BC_HEADER: rc = parseHeader(bc, (unsigned char*)buffer); if (rc == CL_BREAK) /* skip */ return CL_SUCCESS; - if (rc != CL_SUCCESS) + if (rc != CL_SUCCESS) { + cli_errmsg("Error at bytecode line %u\n", row); return rc; + } state = PARSE_FUNC_HEADER; break; case PARSE_FUNC_HEADER: rc = parseFunctionHeader(bc, current_func, (unsigned char*)buffer); - if (rc != CL_SUCCESS) + if (rc != CL_SUCCESS) { + cli_errmsg("Error at bytecode line %u\n", row); return rc; + } bb = 0; state = PARSE_BB; break; case PARSE_BB: rc = parseBB(bc, current_func, bb++, (unsigned char*)buffer); - if (rc != CL_SUCCESS) + if (rc != CL_SUCCESS) { + cli_errmsg("Error at bytecode line %u\n", row); return rc; + } if (bb >= bc->funcs[current_func].numBB) { state = PARSE_FUNC_HEADER; current_func++; diff --git a/libclamav/clambc.h b/libclamav/clambc.h index 6b5dcfe54..4c40a815f 100644 --- a/libclamav/clambc.h +++ b/libclamav/clambc.h @@ -25,7 +25,7 @@ struct bytecode_metadata { unsigned long maxStack, maxMem; unsigned long maxTime; - const char *targetExclude; + char *targetExclude; }; #define BC_FUNC_LEVEL 1