[svn-commits] dvossel: trunk r223132 - /trunk/channels/chan_sip.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Fri Oct 9 11:54:07 CDT 2009
Author: dvossel
Date: Fri Oct 9 11:54:02 2009
New Revision: 223132
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=223132
Log:
'auth=' did not parse md5 secret correctly
(closes issue #15949)
Reported by: ebroad
Patches:
authparsefix.patch uploaded by ebroad (license 878)
15949_trunk.diff uploaded by dvossel (license 671)
Tested by: ebroad
Modified:
trunk/channels/chan_sip.c
Modified: trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=223132&r1=223131&r2=223132
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Fri Oct 9 11:54:02 2009
@@ -24049,7 +24049,6 @@
{
char authcopy[256];
char *username=NULL, *realm=NULL, *secret=NULL, *md5secret=NULL;
- char *stringp;
struct sip_auth *a, *b, *auth;
if (ast_strlen_zero(configuration))
@@ -24058,25 +24057,24 @@
ast_debug(1, "Auth config :: %s\n", configuration);
ast_copy_string(authcopy, configuration, sizeof(authcopy));
- stringp = authcopy;
-
- username = stringp;
- realm = strrchr(stringp, '@');
+ username = authcopy;
+
+ /* split user[:secret] and relm */
+ realm = strrchr(username, '@');
if (realm)
*realm++ = '\0';
if (ast_strlen_zero(username) || ast_strlen_zero(realm)) {
ast_log(LOG_WARNING, "Format for authentication entry is user[:secret]@realm at line %d\n", lineno);
return authlist;
}
- stringp = username;
- username = strsep(&stringp, ":");
- if (username) {
- secret = strsep(&stringp, ":");
- if (!secret) {
- stringp = username;
- md5secret = strsep(&stringp, "#");
- }
- }
+
+ /* parse username at ':' for secret, or '#" for md5secret */
+ if ((secret = strchr(username, ':'))) {
+ *secret++ = '\0';
+ } else if ((md5secret = strchr(username, '#'))) {
+ *md5secret++ = '\0';
+ }
+
if (!(auth = ast_calloc(1, sizeof(*auth))))
return authlist;
More information about the svn-commits
mailing list