From: Russell Bryant Date: Fri, 26 Aug 2005 16:26:37 +0000 (+0000) Subject: ensure buffers are large enough for ENUMLookup (issue #4943) X-Git-Tag: 1.0.11.1~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cf8ee01a674d9380a6708b0cced8f05aac52532;p=thirdparty%2Fasterisk.git ensure buffers are large enough for ENUMLookup (issue #4943) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@6417 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/enum.c b/enum.c index 6e26836704..9591c6b6b1 100755 --- a/enum.c +++ b/enum.c @@ -47,7 +47,7 @@ #define TOPLEV "e164.arpa." static struct enum_search { - char toplev[80]; + char toplev[512]; struct enum_search *next; } *toplevs; @@ -79,11 +79,11 @@ static int parse_ie(unsigned char *data, int maxdatalen, unsigned char *src, int static int parse_naptr(unsigned char *dst, int dstsize, char *tech, int techsize, unsigned char *answer, int len, char *naptrinput) { unsigned char *oanswer = answer; - unsigned char flags[80] = ""; - unsigned char services[80] = ""; - unsigned char regexp[80] = ""; - unsigned char repl[80] = ""; - unsigned char temp[80] = ""; + unsigned char flags[512] = ""; + unsigned char services[512] = ""; + unsigned char regexp[512] = ""; + unsigned char repl[512] = ""; + unsigned char temp[512] = ""; unsigned char delim; unsigned char *delim2; unsigned char *pattern, *subst, *d; @@ -289,8 +289,8 @@ static int enum_callback(void *context, u_char *answer, int len, u_char *fullans int ast_get_enum(struct ast_channel *chan, const char *number, char *dst, int dstlen, char *tech, int techlen) { struct enum_context context; - char tmp[259 + 80]; - char naptrinput[80] = "+"; + char tmp[259 + 512]; + char naptrinput[512] = "+"; int pos = strlen(number) - 1; int newpos = 0; int ret = -1; @@ -346,8 +346,8 @@ int ast_get_enum(struct ast_channel *chan, const char *number, char *dst, int ds int ast_get_txt(struct ast_channel *chan, const char *number, char *dst, int dstlen, char *tech, int techlen, char *txt, int txtlen) { struct enum_context context; - char tmp[259 + 80]; - char naptrinput[80] = "+"; + char tmp[259 + 512]; + char naptrinput[512] = "+"; int pos = strlen(number) - 1; int newpos = 0; int ret = -1;