[PATCH v2 3/4] tst-freopen4-main.c: Call support_capture_subprocess with chroot
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Mon Aug 4 18:40:52 GMT 2025
On 19/07/25 11:43, H.J. Lu wrote:
> 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>
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> stdio-common/tst-freopen4-main.c | 44 ++++++++++++++++++++++----------
> 1 file changed, 30 insertions(+), 14 deletions(-)
>
> diff --git a/stdio-common/tst-freopen4-main.c b/stdio-common/tst-freopen4-main.c
> index 3336f5327d..436da4d203 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;
> }
>
More information about the Libc-alpha
mailing list