From: H.J. Lu Date: Sat, 19 Jul 2025 00:03:04 +0000 (-0700) Subject: io/tst-stat.c: Use a temporary directory for symlink test X-Git-Tag: glibc-2.42~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55e85c1e48c2aae71c0b5907fd22a3e9b978b6e8;p=thirdparty%2Fglibc.git io/tst-stat.c: Use a temporary directory for symlink test Call support_create_temp_directory to create a temporary directory for symlink test, instead of a fixed file in the glibc source tree, to avoid the race condition when there are more than one glibc tests running at the same time with the same glibc source tree. This fixes BZ #33178. Signed-off-by: H.J. Lu Reviewed-by: Andreas K. Huettel --- diff --git a/io/tst-stat.c b/io/tst-stat.c index aeea435ca1..5e0bfcc30e 100644 --- a/io/tst-stat.c +++ b/io/tst-stat.c @@ -27,6 +27,7 @@ #include #include #include +#include static void stat_check (int fd, const char *path, struct stat *st) @@ -78,7 +79,8 @@ static int do_test (void) { char *path; - const char *linkame = "tst-fstat.linkname"; + char *tempdir = support_create_temp_directory ("tst-stat-"); + char *linkname = xasprintf ("%s/tst-fstat.linkname", tempdir); int fd = create_temp_file ("tst-fstat.", &path); TEST_VERIFY_EXIT (fd >= 0); support_write_file_string (path, "abc"); @@ -122,9 +124,12 @@ do_test (void) } } - TEST_COMPARE (symlink ("tst-fstat.target", linkame), 0); - add_temp_file (linkame); - fstatat_link (linkame, &st); + TEST_COMPARE (symlink ("tst-fstat.target", linkname), 0); + add_temp_file (linkname); + fstatat_link (linkname, &st); + + free (linkname); + free (tempdir); return 0; }