|
Zbigniew Jędrzejewski-Szmek |
399a2a |
From fa09f5c3ceef08947225a9c39edb09411f3929d4 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
Date: Sat, 7 Mar 2015 14:19:20 -0500
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
Subject: [PATCH] nspawn: fix use-after-free and leak in error paths
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
CID #1257765.
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
(cherry picked from commit 8a16a7b4e7f6702a7e6edaead80ecf04be7d3ba2)
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
---
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
src/nspawn/nspawn.c | 4 ++--
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
index 7724df96bd..78bd584834 100644
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
--- a/src/nspawn/nspawn.c
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
+++ b/src/nspawn/nspawn.c
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
@@ -3627,7 +3627,7 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
}
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
if (arg_ephemeral) {
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
- char *np;
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
+ _cleanup_free_ char *np = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
/* If the specified path is a mount point we
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
* generate the new snapshot immediately
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
@@ -3657,13 +3657,13 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
r = btrfs_subvol_snapshot(arg_directory, np, arg_read_only, true);
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
- free(np);
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
log_error_errno(r, "Failed to create snapshot %s from %s: %m", np, arg_directory);
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
}
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
free(arg_directory);
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
arg_directory = np;
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
+ np = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
remove_subvol = true;
|
|
Zbigniew Jędrzejewski-Szmek |
399a2a |
|