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