[vlc-commits] smb2: keep the same host for sub items

Thomas Guillem git at videolan.org
Fri Nov 23 16:32:27 CET 2018


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Fri Nov 23 16:29:16 2018 +0100| [c7bffb3cf6b5831d9e549845ff415da68926913d] | committer: Thomas Guillem

smb2: keep the same host for sub items

Don't modify the host, used by sub items, even if it needs to be resolved.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c7bffb3cf6b5831d9e549845ff415da68926913d
---

 modules/access/smb2.c | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/modules/access/smb2.c b/modules/access/smb2.c
index a99512d623..280c544174 100644
--- a/modules/access/smb2.c
+++ b/modules/access/smb2.c
@@ -594,17 +594,6 @@ Open(vlc_object_t *p_obj)
         goto error;
     sys->encoded_url.i_port = 0;
 
-    char *resolved_host = vlc_smb2_resolve(access, sys->encoded_url.psz_host,
-                                           CIFS_PORT);
-    if (resolved_host)
-    {
-        free(sys->encoded_url.psz_host);
-        sys->encoded_url.psz_host = resolved_host;
-    }
-
-    if (sys->encoded_url.psz_path == NULL)
-        sys->encoded_url.psz_path = (char *) "/";
-
     sys->smb2 = smb2_init_context();
     if (sys->smb2 == NULL)
     {
@@ -612,9 +601,24 @@ Open(vlc_object_t *p_obj)
         goto error;
     }
 
+    if (sys->encoded_url.psz_path == NULL)
+        sys->encoded_url.psz_path = (char *) "/";
+
+    char *resolved_host = vlc_smb2_resolve(access, sys->encoded_url.psz_host,
+                                           CIFS_PORT);
+
     /* smb2_* functions need a decoded url. Re compose the url from the
      * modified sys->encoded_url (without port and with the resolved host). */
-    char *url = vlc_uri_compose(&sys->encoded_url);
+    char *url;
+    if (resolved_host != NULL)
+    {
+        vlc_url_t resolved_url = sys->encoded_url;
+        resolved_url.psz_host = resolved_host;
+        url = vlc_uri_compose(&resolved_url);
+        free(resolved_host);
+    }
+    else
+        url = vlc_uri_compose(&sys->encoded_url);
     if (!vlc_uri_decode(url))
     {
         free(url);



More information about the vlc-commits mailing list