Merged revisions 28337 via svnmerge from
authorKevin P. Fleming <kpfleming@digium.com>
Thu, 18 May 2006 19:39:39 +0000 (19:39 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Thu, 18 May 2006 19:39:39 +0000 (19:39 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r28337 | kpfleming | 2006-05-18 14:35:55 -0500 (Thu, 18 May 2006) | 2 lines

use unsigned counters for handling answer/IE lengths while processing DNS results (issue #7174)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@28338 65c4cc65-6c06-0410-ace0-fbb531ad65f3

enum.c

diff --git a/enum.c b/enum.c
index a6553b9..7b3c1cd 100644 (file)
--- a/enum.c
+++ b/enum.c
@@ -95,27 +95,29 @@ struct naptr {
 } __attribute__ ((__packed__));
 
 /*! \brief Parse NAPTR record information elements */
-static int parse_ie(unsigned char *data, int maxdatalen, unsigned char *src, int srclen)
+static unsigned int parse_ie(char *data, unsigned int maxdatalen, char *src, unsigned int srclen)
 {
-       int len, olen;
+       unsigned int len, olen;
 
-       len = olen = (int)src[0];
+       len = olen = (unsigned int) src[0];
        src++;
        srclen--;
-       if (len > srclen || len < 0 ) {
+
+       if (len > srclen) {
                ast_log(LOG_WARNING, "ENUM parsing failed: Wanted %d characters, got %d\n", len, srclen);
                return -1;
        }
+
        if (len > maxdatalen)
                len = maxdatalen;
        memcpy(data, src, len);
+
        return olen + 1;
 }
 
 /*! \brief Parse DNS NAPTR record used in ENUM ---*/
 static int parse_naptr(unsigned char *dst, int dstsize, char *tech, int techsize, unsigned char *answer, int len, unsigned char *naptrinput)
 {
-
        char tech_return[80];
        char *oanswer = answer;
        char flags[512] = "";