From 274641abc25ab6b2d61d96d958bb3ed72486134d Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 7 Mar 2013 17:23:26 +0100 Subject: [PATCH] Fix valgrind error/warning in ip reputation parsing code --- src/reputation.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/reputation.c b/src/reputation.c index 6b62f3012d..d4231a68da 100644 --- a/src/reputation.c +++ b/src/reputation.c @@ -108,6 +108,7 @@ static int SRepCatSplitLine(char *line, uint8_t *cat, char *shortname, size_t sh char *ptrs[2] = {NULL,NULL}; int i = 0; int idx = 0; + char *origline = line; while (i < (int)line_len) { if (line[i] == ',' || line[i] == '\n' || line[i] == '\0' || i == (int)(line_len - 1)) { @@ -119,6 +120,8 @@ static int SRepCatSplitLine(char *line, uint8_t *cat, char *shortname, size_t sh line += (i+1); i = 0; + if (line >= origline + line_len) + break; if (strlen(line) == 0) break; if (idx == 2) @@ -155,6 +158,7 @@ static int SRepSplitLine(char *line, uint32_t *ip, uint8_t *cat, uint8_t *value) char *ptrs[3] = {NULL,NULL,NULL}; int i = 0; int idx = 0; + char *origline = line; while (i < (int)line_len) { if (line[i] == ',' || line[i] == '\n' || line[i] == '\0' || i == (int)(line_len - 1)) { @@ -166,6 +170,8 @@ static int SRepSplitLine(char *line, uint32_t *ip, uint8_t *cat, uint8_t *value) line += (i+1); i = 0; + if (line >= origline + line_len) + break; if (strlen(line) == 0) break; if (idx == 3)