mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Merged revisions 326291 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r326291 | rmudgett | 2011-07-05 12:22:59 -0500 (Tue, 05 Jul 2011) | 23 lines Used auth= parameter freed during "sip reload" causes crash. If you use the auth= parameter and do a "sip reload" while there is an ongoing call. The peer->auth data points to free'd memory. The patch does several things: 1) Puts the authentication list into an ao2 object for reference counting to fix the reported crash during a SIP reload. 2) Converts the authentication list from open coding to AST list macros. 3) Adds display of the global authentication list in "sip show settings". (closes issue ASTERISK-17939) Reported by: wdoekes Patches: jira_asterisk_17939_v1.8.patch (license #5621) patch uploaded by rmudgett Review: https://reviewboard.asterisk.org/r/1303/ JIRA SWP-3526 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@326321 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -829,11 +829,16 @@ struct sip_history {
|
||||
|
||||
/*! \brief sip_auth: Credentials for authentication to other SIP services */
|
||||
struct sip_auth {
|
||||
AST_LIST_ENTRY(sip_auth) node;
|
||||
char realm[AST_MAX_EXTENSION]; /*!< Realm in which these credentials are valid */
|
||||
char username[256]; /*!< Username */
|
||||
char secret[256]; /*!< Secret */
|
||||
char md5secret[256]; /*!< MD5Secret */
|
||||
struct sip_auth *next; /*!< Next auth structure in list */
|
||||
};
|
||||
|
||||
/*! \brief Container of SIP authentication credentials. */
|
||||
struct sip_auth_container {
|
||||
AST_LIST_HEAD_NOLOCK(, sip_auth) list;
|
||||
};
|
||||
|
||||
/*! \brief T.38 channel settings (at some point we need to make this alloc'ed */
|
||||
@@ -1046,7 +1051,7 @@ struct sip_pvt {
|
||||
struct ast_channel *owner; /*!< Who owns us (if we have an owner) */
|
||||
struct sip_route *route; /*!< Head of linked list of routing steps (fm Record-Route) */
|
||||
struct sip_notify *notify; /*!< Custom notify type */
|
||||
struct sip_auth *peerauth; /*!< Realm authentication */
|
||||
struct sip_auth_container *peerauth;/*!< Realm authentication credentials */
|
||||
int noncecount; /*!< Nonce-count */
|
||||
unsigned int stalenonce:1; /*!< Marks the current nonce as responded too */
|
||||
char lastmsg[256]; /*!< Last Message sent/received */
|
||||
@@ -1209,7 +1214,7 @@ struct sip_peer {
|
||||
* for incoming calls
|
||||
*/
|
||||
unsigned short deprecated_username:1; /*!< If it's a realtime peer, are they using the deprecated "username" instead of "defaultuser" */
|
||||
struct sip_auth *auth; /*!< Realm authentication list */
|
||||
struct sip_auth_container *auth;/*!< Realm authentication credentials */
|
||||
int amaflags; /*!< AMA Flags (for billing) */
|
||||
int callingpres; /*!< Calling id presentation */
|
||||
int inUse; /*!< Number of calls in use */
|
||||
|
Reference in New Issue
Block a user