Fix TXTCIDName app (bug #3681)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5175 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
8cf288022b
commit
e59480f4fe
22
enum.c
22
enum.c
|
@ -268,9 +268,25 @@ static int txt_callback(void *context, u_char *answer, int len, u_char *fullansw
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue