[asterisk-commits] rmudgett: branch 12 r428245 - in /branches/12: ./ channels/ channels/sip/ mai...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Nov 19 10:56:36 CST 2014
Author: rmudgett
Date: Wed Nov 19 10:56:30 2014
New Revision: 428245
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=428245
Log:
ast_str: Fix improper member access to struct ast_str members.
Accessing members of struct ast_str outside of the string manipulation API
routines is invalid since struct ast_str is supposed to be treated as
opaque.
Review: https://reviewboard.asterisk.org/r/4194/
........
Merged revisions 428244 from http://svn.asterisk.org/svn/asterisk/branches/11
Modified:
branches/12/ (props changed)
branches/12/channels/chan_sip.c
branches/12/channels/sip/security_events.c
branches/12/main/manager.c
branches/12/res/res_calendar.c
Propchange: branches/12/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.
Modified: branches/12/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/channels/chan_sip.c?view=diff&rev=428245&r1=428244&r2=428245
==============================================================================
--- branches/12/channels/chan_sip.c (original)
+++ branches/12/channels/chan_sip.c Wed Nov 19 10:56:30 2014
@@ -9575,7 +9575,7 @@
This is enabled if pedanticsipchecking is enabled */
static void lws2sws(struct ast_str *data)
{
- char *msgbuf = data->str;
+ char *msgbuf = ast_str_buffer(data);
int len = ast_str_strlen(data);
int h = 0, t = 0;
int lws = 0;
@@ -9616,7 +9616,7 @@
lws = 0;
}
msgbuf[t] = '\0';
- data->used = t;
+ ast_str_update(data);
}
/*! \brief Parse a SIP message
@@ -9624,7 +9624,7 @@
*/
static int parse_request(struct sip_request *req)
{
- char *c = req->data->str;
+ char *c = ast_str_buffer(req->data);
ptrdiff_t *dst = req->header;
int i = 0, lim = SIP_MAX_HEADERS - 1;
unsigned int skipping_headers = 0;
@@ -13694,12 +13694,12 @@
/*! \brief Parse first line of incoming SIP request */
static int determine_firstline_parts(struct sip_request *req)
{
- char *e = ast_skip_blanks(req->data->str); /* there shouldn't be any */
+ char *e = ast_skip_blanks(ast_str_buffer(req->data)); /* there shouldn't be any */
char *local_rlpart1;
if (!*e)
return -1;
- req->rlpart1 = e - req->data->str; /* method or protocol */
+ req->rlpart1 = e - ast_str_buffer(req->data); /* method or protocol */
local_rlpart1 = e;
e = ast_skip_nonblanks(e);
if (*e)
@@ -13713,7 +13713,7 @@
if (!strcasecmp(local_rlpart1, "SIP/2.0") ) { /* We have a response */
if (strlen(e) < 3) /* status code is 3 digits */
return -1;
- req->rlpart2 = e - req->data->str;
+ req->rlpart2 = e - ast_str_buffer(req->data);
} else { /* We have a request */
if ( *e == '<' ) { /* XXX the spec says it must not be in <> ! */
ast_debug(3, "Oops. Bogus uri in <> %s\n", e);
@@ -13721,7 +13721,7 @@
if (!*e)
return -1;
}
- req->rlpart2 = e - req->data->str; /* URI */
+ req->rlpart2 = e - ast_str_buffer(req->data); /* URI */
e = ast_skip_nonblanks(e);
if (*e)
*e++ = '\0';
@@ -16716,7 +16716,7 @@
return AUTH_SECRET_FAILED; /*! XXX \todo need a better return code here */
}
- c = buf->str;
+ c = ast_str_buffer(buf);
sip_digest_parser(c, keys);
@@ -17052,7 +17052,7 @@
return;
}
- c = buf->str;
+ c = ast_str_buffer(buf);
while (c && *(c = ast_skip_blanks(c))) { /* lookup for keys */
for (i = keys; i->key != NULL; i++) {
Modified: branches/12/channels/sip/security_events.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/channels/sip/security_events.c?view=diff&rev=428245&r1=428244&r2=428245
==============================================================================
--- branches/12/channels/sip/security_events.c (original)
+++ branches/12/channels/sip/security_events.c Wed Nov 19 10:56:30 2014
@@ -311,7 +311,7 @@
authtoken = sip_get_header(req, reqheader);
buf = ast_str_thread_get(&check_auth_buf, CHECK_AUTH_BUF_INITLEN);
ast_str_set(&buf, 0, "%s", authtoken);
- c = buf->str;
+ c = ast_str_buffer(buf);
sip_digest_parser(c, keys);
Modified: branches/12/main/manager.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/manager.c?view=diff&rev=428245&r1=428244&r2=428245
==============================================================================
--- branches/12/main/manager.c (original)
+++ branches/12/main/manager.c Wed Nov 19 10:56:30 2014
@@ -1991,6 +1991,7 @@
struct manager_action *cur;
struct ast_str *authority;
int num, l, which;
+ const char *auth_str;
char *ret = NULL;
#ifdef AST_XML_DOCS
char syntax_title[64], description_title[64], synopsis_title[64], seealso_title[64], arguments_title[64], privilege_title[64];
@@ -2035,7 +2036,7 @@
AST_RWLIST_TRAVERSE(&actions, cur, list) {
for (num = 3; num < a->argc; num++) {
if (!strcasecmp(cur->action, a->argv[num])) {
- authority_to_str(cur->authority, &authority);
+ auth_str = authority_to_str(cur->authority, &authority);
#ifdef AST_XML_DOCS
if (cur->docsrc == AST_XML_DOC) {
@@ -2044,7 +2045,7 @@
char *description = ast_xmldoc_printable(S_OR(cur->description, "Not available"), 1);
char *arguments = ast_xmldoc_printable(S_OR(cur->arguments, "Not available"), 1);
char *seealso = ast_xmldoc_printable(S_OR(cur->seealso, "Not available"), 1);
- char *privilege = ast_xmldoc_printable(S_OR(authority->str, "Not available"), 1);
+ char *privilege = ast_xmldoc_printable(S_OR(auth_str, "Not available"), 1);
ast_cli(a->fd, "%s%s\n\n%s%s\n\n%s%s\n\n%s%s\n\n%s%s\n\n%s%s\n\n",
syntax_title, syntax,
synopsis_title, synopsis,
@@ -2057,7 +2058,7 @@
{
ast_cli(a->fd, "Action: %s\nSynopsis: %s\nPrivilege: %s\n%s\n",
cur->action, cur->synopsis,
- authority->str,
+ auth_str,
S_OR(cur->description, ""));
}
}
Modified: branches/12/res/res_calendar.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_calendar.c?view=diff&rev=428245&r1=428244&r2=428245
==============================================================================
--- branches/12/res/res_calendar.c (original)
+++ branches/12/res/res_calendar.c Wed Nov 19 10:56:30 2014
@@ -789,7 +789,7 @@
for (itervar = event->owner->vars; itervar; itervar = itervar->next) {
ast_str_substitute_variables(&tmpstr, 0, chan, itervar->value);
- pbx_builtin_setvar_helper(chan, itervar->name, tmpstr->str);
+ pbx_builtin_setvar_helper(chan, itervar->name, ast_str_buffer(tmpstr));
}
if (!(apptext = ast_str_create(32))) {
More information about the asterisk-commits
mailing list