From c9085745455dd575d91e49031518b709e6f87d7d Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 3 Jan 2012 14:29:53 +0100 Subject: [PATCH] Use strtoul instead of strtol for sid parsing. Fixes parsing of really large sid numbers. Fixes #393. --- src/detect-rev.c | 2 +- src/detect-sid.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/detect-rev.c b/src/detect-rev.c index 6fbb66da5a..9d56735907 100644 --- a/src/detect-rev.c +++ b/src/detect-rev.c @@ -61,7 +61,7 @@ static int DetectRevSetup (DetectEngineCtx *de_ctx, Signature *s, char *rawstr) "to rev keyword"); goto error; } - s->rev = rev; + s->rev = (uint32_t)rev; if (dubbed) SCFree(str); diff --git a/src/detect-sid.c b/src/detect-sid.c index 8133db2235..7af28709e9 100644 --- a/src/detect-sid.c +++ b/src/detect-sid.c @@ -53,16 +53,15 @@ static int DetectSidSetup (DetectEngineCtx *de_ctx, Signature *s, char *sidstr) dubbed = 1; } - long id = 0; + unsigned long id = 0; char *endptr = NULL; - id = strtol(sidstr, &endptr, 10); + id = strtoul(sidstr, &endptr, 10); if (endptr == NULL || *endptr != '\0') { SCLogError(SC_ERR_INVALID_SIGNATURE, "Saw an invalid character as arg " "to sid keyword"); goto error; } - s->id = id; - //s->id = (uint32_t)atoi(str); + s->id = (uint32_t)id; if (dubbed) SCFree(str);