dect
/
asterisk
Archived
13
0
Fork 0

Merged revisions 321155 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r321155 | markm | 2011-05-26 17:48:45 -0400 (Thu, 26 May 2011) | 10 lines
  
  Fixed build problem with dev mode enabled, which was caused by commit 321100.  Reformulated patch to be more generic.
  
  Moved the sip uri parse variable initalization to parse_uri_full in reqresp_parser.c.  This will ensure that any use of parse uri will have null output variables if the parse fails.
  
  (closes issue #19346)
  Reported by: kobaz
  Tested by: kobaz,JonathanRose
  
  Review: [full review board URL with trailing slash]
........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@321156 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
markm 2011-05-26 21:50:06 +00:00
parent deba23ad23
commit 570da4c7e7
2 changed files with 19 additions and 15 deletions

View File

@ -13550,21 +13550,8 @@ static int parse_ok_contact(struct sip_pvt *pvt, struct sip_request *req)
}
/*! \brief parse uri in a way that allows semicolon stripping if legacy mode is enabled */
static int parse_uri_legacy_check(char *uri, const char *scheme, char **user, char **pass, char **domain, char **transport) {
/* Assume invalid to start */
if (user) {
*user = 0;
}
if (pass) {
*pass = 0;
}
if (domain) {
*domain = 0;
}
if (transport) {
*transport = 0;
}
static int parse_uri_legacy_check(char *uri, const char *scheme, char **user, char **pass, char **domain, char **transport)
{
int ret = parse_uri(uri, scheme, user, pass, domain, transport);
if (sip_cfg.legacy_useroption_parsing) { /* if legacy mode is active, strip semis from the user field */
char *p;

View File

@ -44,6 +44,23 @@ int parse_uri_full(char *uri, const char *scheme, char **user, char **pass,
/* check for valid input */
if (ast_strlen_zero(uri)) {
/* make sure we leave nothing undefined after we exit */
if (user) {
*user = "";
}
if (pass) {
*pass = "";
}
if (domain) {
*domain = "";
}
if (headers) {
*headers = "";
}
if (residue) {
*residue = "";
}
return -1;
}