summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2005-06-18 23:30:40 +0000
committerMark Spencer <markster@digium.com>2005-06-18 23:30:40 +0000
commitb6ea1bcb2926f67ca350c31ec4fbec2cf9123842 (patch)
tree84b7a71af62c6d13a3b6897b5c01d3a52cad5228 /channels
parent0c61fc56bef4292cc2c5fedef606f9180b3748bb (diff)
Attempt to repair SIP parameter gathering brokenness
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d698e852d..44bad0d5e 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7770,7 +7770,7 @@ static int reply_digest(struct sip_pvt *p, struct sip_request *req,
c = tmp + strlen("Digest ");
for (i = keys; i->key != NULL; i++)
i->dst[0] = '\0'; /* init all to empty strings */
- for (; c && *(c = ast_skip_blanks(c)) ; c++) { /* lookup for keys */
+ while (c && *(c = ast_skip_blanks(c))) { /* lookup for keys */
for (i = keys; i->key != NULL; i++) {
char *src;
if (strncasecmp(c, i->key, strlen(i->key)) != 0)
@@ -7779,12 +7779,16 @@ static int reply_digest(struct sip_pvt *p, struct sip_request *req,
c += strlen(i->key);
if ((*c == '\"')) {
src = ++c;
- if ((c = strchr(c,'\"')))
+ if ((c = strchr(c,'\"'))) {
*c = '\0';
+ c++;
+ }
} else {
src = c;
- if ((c = strchr(c,',')))
+ if ((c = strchr(c,','))) {
*c = '\0';
+ c++;
+ }
}
ast_copy_string(i->dst, src, i->dstlen);
break;