vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Feb 23 
16:09:32 2020 +0200| [6e49d43e30d6a024cf63c6fdc130d1899adc0b18] | committer: 
Rémi Denis-Courmont

unc: chop before rather than after string copy

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

 modules/access/unc.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/modules/access/unc.c b/modules/access/unc.c
index fbb3a58240..92a390535e 100644
--- a/modules/access/unc.c
+++ b/modules/access/unc.c
@@ -56,14 +56,18 @@ static void Win32AddConnection(stream_t *access, const char 
*server,
 {
     char *remote_name;
 
-    if (asprintf(&remote_name, "\\\\%s\\%s", server,
-                 (share != NULL) ? share + 1 /* skip leading '/' */: "") < 0)
-        return;
-
-    /* remove trailings '/' */
-    char *delim = strchr(remote_name, '/');
-    if (delim != NULL)
-        *delim = '\0';
+    if (share != NULL)
+    {   /* skip leading and remove trailing slashes */
+        int slen = strcspn(++share, "/");
+
+        if (asprintf(&remote_name, "\\\\%s\\%.*s", server, slen, share) < 0)
+            return;
+    }
+    else
+    {
+        if (asprintf(&remote_name, "\\\\%s\\", server) < 0)
+            return;
+    }
 
     NETRESOURCE net_resource = {
         .dwType = RESOURCETYPE_DISK,

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to