summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Barth <cyrus@openwrt.org>2015-01-06 23:40:23 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2015-01-07 13:08:41 +0100
commit95af7f0a4c87894ef818f248845e1954fa780bec (patch)
tree781ab04886a5b1fea94dfa8670b91f34995e0f15 /src
parent5727cb06ce1ff42a855e8994910452c8e3d862e4 (diff)
datatype: use mpz_set_str instead of gmp_sscanf
This simplifies the integer parsing logic and restricts it to functions being part of the mini-gmp subset. Signed-off-by: Steven Barth <cyrus@openwrt.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/datatype.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/datatype.c b/src/datatype.c
index 2a9fcdb0..76f2af13 100644
--- a/src/datatype.c
+++ b/src/datatype.c
@@ -276,11 +276,9 @@ static struct error_record *integer_type_parse(const struct expr *sym,
struct expr **res)
{
mpz_t v;
- int len;
mpz_init(v);
- if (gmp_sscanf(sym->identifier, "%Zu%n", v, &len) != 1 ||
- (int)strlen(sym->identifier) != len) {
+ if (mpz_set_str(v, sym->identifier, 0)) {
mpz_clear(v);
return error(&sym->location, "Could not parse %s",
sym->dtype->desc);