]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
CID: 1214223-1214230 If sent an invalid registration authentication header with multi...
authorWilliam King <william.king@quentustech.com>
Fri, 16 May 2014 18:50:07 +0000 (11:50 -0700)
committerWilliam King <william.king@quentustech.com>
Fri, 16 May 2014 18:50:18 +0000 (11:50 -0700)
src/mod/endpoints/mod_sofia/sofia_reg.c

index aeb45baec67932cbcffce8876bbe789499a158a9..e400e4d54c8ea22341bf7f063f28374ccae32d48 100644 (file)
@@ -2581,21 +2581,21 @@ auth_res_t sofia_reg_parse_auth(sofia_profile_t *profile,
                                                *p = '\0';
                                        }
 
-                                       if (!strcasecmp(var, "username")) {
+                                       if (!strcasecmp(var, "username") && !username) {
                                                username = strdup(val);
-                                       } else if (!strcasecmp(var, "realm")) {
+                                       } else if (!strcasecmp(var, "realm") && !realm) {
                                                realm = strdup(val);
-                                       } else if (!strcasecmp(var, "nonce")) {
+                                       } else if (!strcasecmp(var, "nonce") && !nonce) {
                                                nonce = strdup(val);
-                                       } else if (!strcasecmp(var, "uri")) {
+                                       } else if (!strcasecmp(var, "uri") && !uri) {
                                                uri = strdup(val);
-                                       } else if (!strcasecmp(var, "qop")) {
+                                       } else if (!strcasecmp(var, "qop") && !qop) {
                                                qop = strdup(val);
-                                       } else if (!strcasecmp(var, "cnonce")) {
+                                       } else if (!strcasecmp(var, "cnonce") && !cnonce) {
                                                cnonce = strdup(val);
-                                       } else if (!strcasecmp(var, "response")) {
+                                       } else if (!strcasecmp(var, "response") && !response) {
                                                response = strdup(val);
-                                       } else if (!strcasecmp(var, "nc")) {
+                                       } else if (!strcasecmp(var, "nc") && !nc) {
                                                nc = strdup(val);
                                        }
                                }