aboutsummaryrefslogtreecommitdiff
path: root/stdio-common
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2025-07-19 07:43:28 -0700
committerH.J. Lu <hjl.tools@gmail.com>2025-08-04 14:41:29 -0700
commit6463d4a7b28e5ee3891c34a8a1f0a59c24dfa9de (patch)
treeaa5e9f86b07430d1412130f8cf5df4d198b677d8 /stdio-common
parente7db5150603bb2224a2bfd9628cae04ddcbe49e3 (diff)
downloadglibc-6463d4a7b28e5ee3891c34a8a1f0a59c24dfa9de.zip
glibc-6463d4a7b28e5ee3891c34a8a1f0a59c24dfa9de.tar.gz
glibc-6463d4a7b28e5ee3891c34a8a1f0a59c24dfa9de.tar.bz2
tst-freopen4-main.c: Call support_capture_subprocess with chroot
Update tst-freopen4-main.c to call support_capture_subprocess with chroot, which makes temporary files inaccessible, so that temporary files can be deleted. This partially fixes BZ #33182. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/tst-freopen4-main.c44
1 files changed, 30 insertions, 14 deletions
diff --git a/stdio-common/tst-freopen4-main.c b/stdio-common/tst-freopen4-main.c
index 3336f53..436da4d 100644
--- a/stdio-common/tst-freopen4-main.c
+++ b/stdio-common/tst-freopen4-main.c
@@ -28,25 +28,15 @@
#include <support/test-driver.h>
#include <support/xstdio.h>
#include <support/xunistd.h>
+#include <support/capture_subprocess.h>
-int
-do_test (void)
+static void
+do_test_chroot (void *data)
{
- mtrace ();
- char *temp_dir;
+ char *temp_dir = (char *) data;
FILE *fp;
int ret;
- /* These chroot tests verify that either reopening a renamed or
- deleted file works even in the absence of /proc, or that it fails
- (without memory leaks); thus, for example, such reopening does
- not crash in the absence of /proc. */
-
- support_become_root ();
- if (!support_can_chroot ())
- return EXIT_UNSUPPORTED;
-
- temp_dir = support_create_temp_directory ("tst-freopen4");
xchroot (temp_dir);
/* Test freopen with NULL, renamed file. This verifies that
@@ -96,6 +86,32 @@ do_test (void)
puts ("freopen of deleted file failed (OK)");
free (temp_dir);
+}
+
+int
+do_test (void)
+{
+ mtrace ();
+ char *temp_dir;
+
+ /* These chroot tests verify that either reopening a renamed or
+ deleted file works even in the absence of /proc, or that it fails
+ (without memory leaks); thus, for example, such reopening does
+ not crash in the absence of /proc. */
+
+ support_become_root ();
+ if (!support_can_chroot ())
+ return EXIT_UNSUPPORTED;
+
+ temp_dir = support_create_temp_directory ("tst-freopen4");
+
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess (do_test_chroot, temp_dir);
+ support_capture_subprocess_check (&result, "freopen4", 0,
+ sc_allow_stdout);
+ fputs (result.out.buffer, stdout);
+ support_capture_subprocess_free (&result);
+
return 0;
}