| From d7270c1642fa81b34b266d33412a842edc42c64c Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> |
| Date: Mon, 7 Nov 2016 08:54:47 -0500 |
| Subject: [PATCH] nspawn: avoid one strdup by using free_and_replace |
| |
| (cherry picked from commit 49fedb4094b69d279095ef8ce8d9203161aed5d9) |
| --- |
| src/core/namespace.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/src/core/namespace.c b/src/core/namespace.c |
| index c45c120193..524416ecbd 100644 |
| --- a/src/core/namespace.c |
| +++ b/src/core/namespace.c |
| @@ -678,8 +678,9 @@ static int chase_all_symlinks(const char *root_directory, BindMount *m, unsigned |
| * chase the symlinks on our own first. This call wil do so for all entries and remove all entries where we |
| * can't resolve the path, and which have been marked for such removal. */ |
| |
| - for (f = m, t = m; f < m+*n; f++) { |
| + for (f = m, t = m; f < m + *n; f++) { |
| _cleanup_free_ char *chased = NULL; |
| + |
| r = chase_symlinks(f->path, root_directory, &chased); |
| if (r == -ENOENT && f->ignore) { |
| /* Doesn't exist? Then remove it! */ |
| @@ -691,7 +692,7 @@ static int chase_all_symlinks(const char *root_directory, BindMount *m, unsigned |
| |
| if (!path_equal(f->path, chased)) { |
| log_debug("Chased %s → %s", f->path, chased); |
| - r = free_and_strdup(&f->path, chased); |
| + r = free_and_replace(f->path, chased); |
| if (r < 0) |
| return r; |
| } |