svn commit: r283227 - stable/10/usr.sbin/autofs

Edward Tomasz Napierala trasz at FreeBSD.org
Thu May 21 13:18:03 UTC 2015


Author: trasz
Date: Thu May 21 13:18:02 2015
New Revision: 283227
URL: https://svnweb.freebsd.org/changeset/base/283227

Log:
  MFC r279806:
  
  Minor optimization/cleanup in node_path(); no functional changes.

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:13:56 2015	(r283226)
+++ stable/10/usr.sbin/autofs/common.c	Thu May 21 13:18:02 2015	(r283227)
@@ -561,7 +561,6 @@ static char *
 node_path_x(const struct node *n, char *x)
 {
 	char *path;
-	size_t len;
 
 	if (n->n_parent == NULL)
 		return (x);
@@ -580,14 +579,6 @@ node_path_x(const struct node *n, char *
 	path = separated_concat(n->n_key, x, '/');
 	free(x);
 
-	/*
-	 * Strip trailing slash.
-	 */
-	len = strlen(path);
-	assert(len > 0);
-	if (path[len - 1] == '/')
-		path[len - 1] = '\0';
-
 	return (node_path_x(n->n_parent, path));
 }
 
@@ -598,8 +589,19 @@ node_path_x(const struct node *n, char *
 char *
 node_path(const struct node *n)
 {
+	char *path;
+	size_t len;
+
+	path = node_path_x(n, checked_strdup(""));
+
+	/*
+	 * Strip trailing slash, unless the whole path is "/".
+	 */
+	len = strlen(path);
+	if (len > 1 && path[len - 1] == '/')
+		path[len - 1] = '\0';
 
-	return (node_path_x(n, checked_strdup("")));
+	return (path);
 }
 
 static char *


More information about the svn-src-stable mailing list