[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