From be966dd6e2c5a2d17690d4b0013aa1f2f15f431b Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Wed, 18 Apr 2001 13:08:47 +0000 Subject: [PATCH] use strtol to parse constants git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9784 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/asn1/lex.l | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/asn1/lex.l b/lib/asn1/lex.l index 7226745c3..14908d97d 100644 --- a/lib/asn1/lex.l +++ b/lib/asn1/lex.l @@ -1,6 +1,6 @@ %{ /* - * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -80,7 +80,10 @@ EXTERNAL { return EXTERNAL; } "]" { return *yytext; } ::= { return EEQUAL; } --[^\n]*\n { ++lineno; } --?[0-9]+ { yylval.constant = atoi(yytext); return CONSTANT; } +-?(0x)?[0-9]+ { char *e; yylval.constant = strtol(yytext, &e, 0); + if(e == yytext) + error_message("malformed constant (%s)", yytext); + else return CONSTANT; } [A-Za-z][-A-Za-z0-9_]* { yylval.name = strdup (yytext); return IDENTIFIER; } [ \t] ; \n { ++lineno; }