Subject: bug#30918: Don't use syscall() to call renameat2()

From: Ross Burton <[email-masked]>
Date: Fri, 23 Mar 2018 17:38:25 +0000

mv.c uses gnulib/renameat2.c to call renameat2(), which if the glibc
wrapper isn't available will just invoke syscall(SYS_renameat2). This may
seem like a good idea but considering a number of major distributions use
LD_PRELOAD to build as a pretend root user[1] these mv calls won't be
intercepted, and building will break in strange and interesting ways (such
as binaries not being owned by root:root anymore).  Please consider
changing renameat2.c so that it doesn't hit syscall() if the wrapper isn't
available.

Ross

[1] Debian and derivatives using fakeroot, OpenEmbedded derivatives using
pseudo, etc.