Bug found bei Keith & Seth: input framework was not handling counts and ints out of 32-bit-range correctly.

Note - another bugfix will be coming later (problem reading sets containing zero-length-strings & un-escaping-bug in sets)
This commit is contained in:
Bernhard Amann 2012-08-26 14:49:37 -07:00
parent c1c9c9e34a
commit 124c985d7a
3 changed files with 50 additions and 3 deletions

View file

@ -238,7 +238,7 @@ Value* Ascii::EntryToVal(string s, FieldMapping field)
break;
case TYPE_INT:
val->val.int_val = atoi(s.c_str());
val->val.int_val = strtoll(s.c_str(), (char**) NULL, 10);
break;
case TYPE_DOUBLE:
@ -249,7 +249,7 @@ Value* Ascii::EntryToVal(string s, FieldMapping field)
case TYPE_COUNT:
case TYPE_COUNTER:
val->val.uint_val = atoi(s.c_str());
val->val.uint_val = strtoull(s.c_str(),(char**) NULL, 10);
break;
case TYPE_PORT:
@ -344,7 +344,7 @@ Value* Ascii::EntryToVal(string s, FieldMapping field)
if ( pos != length )
{
Error("Internal error while parsing set: did not find all elements");
Error(Fmt("Internal error while parsing set: did not find all elements: %s", s.c_str()));
return 0;
}