Просмотр исходного кода

s-s-d: Refactor path concatenation into newpath()

Guillem Jover лет назад: 14
Родитель
Сommit
db5604d792
1 измененных файлов с 16 добавлено и 7 удалено
  1. 16 7
      utils/start-stop-daemon.c

+ 16 - 7
utils/start-stop-daemon.c

@@ -297,6 +297,19 @@ tmul(struct timeval *a, int b)
 	a->tv_usec %= 1000000;
 }
 
+static char *
+newpath(const char *dirname, const char *filename)
+{
+	char *path;
+	size_t path_len;
+
+	path_len = strlen(dirname) + 1 + strlen(filename) + 1;
+	path = xmalloc(path_len);
+	snprintf(path, path_len, "%s/%s", dirname, filename);
+
+	return path;
+}
+
 static long
 get_open_fd_max(void)
 {
@@ -1605,14 +1618,10 @@ main(int argc, char **argv)
 	if (execname) {
 		char *fullexecname;
 
-		if (changeroot) {
-			int fullexecname_len = strlen(changeroot) + 1 +
-			                       strlen(execname) + 1;
 
-			fullexecname = xmalloc(fullexecname_len);
-			snprintf(fullexecname, fullexecname_len, "%s/%s",
-			         changeroot, execname);
-		} else
+		if (changeroot)
+			fullexecname = newpath(changeroot, execname);
+		else
 			fullexecname = execname;
 
 		if (stat(fullexecname, &exec_stat))