Author: trasz
Date: Thu May 21 13:19:44 2015
New Revision: 283228
URL: https://svnweb.freebsd.org/changeset/base/283228

Log:
  MFC r279807:
  
  Improve separated_concat() to properly handle the case of concatenating
  "/" and "/foo".

Modified:
  stable/10/usr.sbin/autofs/common.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/autofs/common.c
==============================================================================
--- stable/10/usr.sbin/autofs/common.c  Thu May 21 13:18:02 2015        
(r283227)
+++ stable/10/usr.sbin/autofs/common.c  Thu May 21 13:19:44 2015        
(r283228)
@@ -136,8 +136,14 @@ separated_concat(const char *s1, const c
        assert(s1 != NULL);
        assert(s2 != NULL);
 
-       if (s1[0] == '\0' || s2[0] == '\0' ||
-           s1[strlen(s1) - 1] == separator || s2[0] == separator) {
+       /*
+        * If s2 starts with separator - skip it; otherwise concatenating
+        * "/" and "/foo" would end up returning "//foo".
+        */
+       if (s2[0] == separator)
+               s2++;
+
+       if (s1[0] == '\0' || s2[0] == '\0' || s1[strlen(s1) - 1] == separator) {
                ret = asprintf(&result, "%s%s", s1, s2);
        } else {
                ret = asprintf(&result, "%s%c%s", s1, separator, s2);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to