[Asterisk-cvs] asterisk enum.c,1.22,1.23

markster at lists.digium.com markster at lists.digium.com
Sat Mar 12 01:00:12 CST 2005


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv17440

Modified Files:
	enum.c 
Log Message:
Fix TXTCIDName app (bug #3681)


Index: enum.c
===================================================================
RCS file: /usr/cvsroot/asterisk/enum.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- enum.c	2 Mar 2005 05:17:13 -0000	1.22
+++ enum.c	12 Mar 2005 06:56:22 -0000	1.23
@@ -268,9 +268,25 @@
 		c->txtlen = 0;
 		return 0;
 	}
-	strncpy(c->txt, answer, sizeof(c->txt) - 1);
-	c->txt[sizeof(c->txt) - 1] = 0;	/* Make sure the string is terminated */
-	c->txtlen = strlen(c->txt);
+
+	/* skip over first byte, as for some reason it's a vertical tab character */
+	answer += 1;
+	len -= 1;
+
+	/* answer is not null-terminated, but should be */
+	/* this is safe to do, as answer has extra bytes on the end we can 
+           safely overwrite with a null */
+	answer[len] = (u_char)"\0";
+	/* now increment len so that len includes the null, so that we can
+	   compare apples to apples */
+	len +=1;
+
+	/* finally, copy the answer into c->txt */
+	strncpy(c->txt, answer, len < c->txtlen ? len-1 : (c->txtlen)-1);
+	
+	/* just to be safe, let's make sure c->txt is null terminated */
+	c->txt[(c->txtlen)-1] = (char)"\0";
+
 	return 1;
 }
 




More information about the svn-commits mailing list