diff options
author | Florian Weimer <fweimer@redhat.com> | 2018-07-05 18:59:02 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2018-07-05 19:00:10 +0200 |
commit | d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7 (patch) | |
tree | 4c8f50e0ec6b6780eb1eb4dd2b496f0a1b1411d3 /stdio-common/renameat.c | |
parent | 1002d708232dda9ebff65f6c1409fa067a01b6e0 (diff) | |
download | glibc-d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7.tar.gz glibc-d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7.tar.xz glibc-d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7.zip |
Add renameat2 function [BZ #17662]
The implementation falls back to renameat if renameat2 is not available in the kernel (or in the kernel headers) and the flags argument is zero. Without kernel support, a non-zero argument returns EINVAL, not ENOSYS. This mirrors what the kernel does for invalid renameat2 flags.
Diffstat (limited to 'stdio-common/renameat.c')
-rw-r--r-- | stdio-common/renameat.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/stdio-common/renameat.c b/stdio-common/renameat.c index 2180b87bdf..98c8f1d18b 100644 --- a/stdio-common/renameat.c +++ b/stdio-common/renameat.c @@ -22,7 +22,7 @@ /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD. */ int -renameat (int oldfd, const char *old, int newfd, const char *new) +__renameat (int oldfd, const char *old, int newfd, const char *new) { if ((oldfd < 0 && oldfd != AT_FDCWD) || (newfd < 0 && newfd != AT_FDCWD)) { @@ -40,5 +40,6 @@ renameat (int oldfd, const char *old, int newfd, const char *new) return -1; } - +libc_hidden_def (__renameat) +weak_alias (__renameat, renameat) stub_warning (renameat) |