]> granicus.if.org Git - ejabberd/commitdiff
Nameprep host name passed to http-bind before using in (EJAB-1658)
authorPaweł Chmielowski <pchmielowski@process-one.net>
Tue, 22 Sep 2015 13:33:31 +0000 (15:33 +0200)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Tue, 22 Sep 2015 13:42:57 +0000 (15:42 +0200)
src/ejabberd_http_bind.erl

index 4277f4c54a52d6a4fbf0739540548a6a1a5bc442..42be52561325a078c4792957b9546fb20d1bad87 100644 (file)
@@ -220,8 +220,9 @@ process_request(Data, IP, HOpts) ->
                   "dressing' xmlns='",
                   (?NS_HTTP_BIND)/binary, "'/>">>};
            XmppDomain ->
+                NXmppDomain = jlib:nameprep(XmppDomain),
                Sid = p1_sha:sha(term_to_binary({now(), make_ref()})),
-                  case start(XmppDomain, Sid, <<"">>, IP, HOpts) of
+                  case start(NXmppDomain, Sid, <<"">>, IP, HOpts) of
                  {error, _} ->
                      {500, ?HEADER,
                       <<"<body type='terminate' condition='internal-se"
@@ -229,7 +230,7 @@ process_request(Data, IP, HOpts) ->
                         (?NS_HTTP_BIND)/binary,
                         "'>Internal Server Error</body>">>};
                  {ok, Pid} ->
-                     handle_session_start(Pid, XmppDomain, Sid, Rid, Attrs,
+                     handle_session_start(Pid, NXmppDomain, Sid, Rid, Attrs,
                                           Payload, PayloadSize, IP)
                end
          end;