From 78ae787757ab697bf92f49ec41a03c540550c887 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Fri, 8 Jul 2016 12:57:12 -0400
Subject: [PATCH] fdio: Use correct dfd with O_TMPFILE in rename case

While auditing this code to figure out why ostree's
`tests/test-refs.sh` was failing, while the bug turned out to be
different, I noticed that in the case where `dfd != target_dfd`, we
failed to do the right `renameat()`.  (No code I'm aware of does this
now).
---
 glnx-fdio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/glnx-fdio.c b/glnx-fdio.c
index c15639d58..55eef098d 100644
--- a/glnx-fdio.c
+++ b/glnx-fdio.c
@@ -255,7 +255,7 @@ glnx_link_tmpfile_at (int dfd,
               g_set_error (error, G_IO_ERROR, G_IO_ERROR_EXISTS,
                "Exhausted %u attempts to create temporary file", count);
             }
-          if (renameat (dfd, tmpname_buf, target_dfd, target) < 0)
+          if (renameat (target_dfd, tmpname_buf, target_dfd, target) < 0)
             {
               glnx_set_error_from_errno (error);
               return FALSE;
-- 
GitLab