From 340dcbd879d050aebcd7081ec5f2208f0e2418b6 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 24 Dec 2020 11:38:48 -0800 Subject: stat failing with EOVERFLOW implies existence * lib/euidaccess.c (euidaccess): * lib/file-has-acl.c (file_has_acl): * lib/link.c (link, rpl_link): * lib/mkdir.c (rpl_mkdir): * lib/mkfifo.c (rpl_mkfifo): * lib/mknod.c (rpl_mknod): * lib/ptsname_r.c (__ptsname_r): * lib/symlink.c (rpl_symlink): * lib/symlinkat.c (rpl_symlinkat): * lib/unlink.c (rpl_unlink): * lib/unlinkat.c (rpl_unlinkat): * lib/utime.c (utime): If stat fails with EOVERFLOW the file exists, so treat it that way in file-existence tests that do not need struct stat values. --- lib/mkdir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/mkdir.c') diff --git a/lib/mkdir.c b/lib/mkdir.c index c0d4b61651..386344fcd2 100644 --- a/lib/mkdir.c +++ b/lib/mkdir.c @@ -77,7 +77,7 @@ rpl_mkdir (char const *dir, mode_t mode maybe_unused) || (last[1] == '.' && last[2] == '\0'))) { struct stat st; - if (stat (tmp_dir, &st) == 0) + if (stat (tmp_dir, &st) == 0 || errno == EOVERFLOW) errno = EEXIST; return -1; } -- cgit v1.2.1