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:
parent
deba23ad23
commit
570da4c7e7
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue