diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-03-31 22:35:20 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-03-31 22:35:20 +0000 |
commit | 1b9d46d8a596320f90aed15bf033cb5d59a5afbf (patch) | |
tree | 879df3da5e904dc12e539348a572e11e05d71ca1 /channels | |
parent | cea7a588a45e12edcc6c7b30669db3c90c02a69c (diff) |
Fix improper comaparison of anonymous URI when getting P-Asserted-Identity.
There was a bug where we split the URI on the @ sign and then attempted
to compare to "anonymous@anonymous.invalid" afterwards. This comparison
could never evaluate true. So now we keep a copy of the URI prior to the
split so that the comparison is valid.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@255701 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 9cd0608d9..59ba5dce2 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -12172,7 +12172,7 @@ static int get_pai(struct sip_pvt *p, struct sip_request *req) char *cid_num = ""; char *cid_name = ""; int callingpres = AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED; - char *start = NULL, *end = NULL; + char *start = NULL, *end = NULL, *uri = NULL; ast_copy_string(pai, get_header(req, "P-Asserted-Identity"), sizeof(pai)); @@ -12193,12 +12193,17 @@ static int get_pai(struct sip_pvt *p, struct sip_request *req) if (*start != '<') return 0; + /* At this point, 'start' points to the URI in brackets. + * We need a copy so that our comparison to the anonymous + * URI is valid. + */ + uri = ast_strdupa(start); *start++ = '\0'; end = strchr(start, '@'); if (!end) return 0; *end++ = '\0'; - if (!strncasecmp(start, "anonymous@anonymous.invalid", 27)) { + if (!strncasecmp(uri, "anonymous@anonymous.invalid", 27)) { callingpres = AST_PRES_PROHIB_USER_NUMBER_NOT_SCREENED; /*XXX Assume no change in cid_num. Perhaps it should be * blanked? |