On Fri, Jul 9, 2021 at 6:13 AM Adhemerval Zanella wrote: > > > > On 09/07/2021 10:04, H.J. Lu wrote: > > Change tst-spawn5.c to handle tst-spawn5 without optional path to ld.so, > > --library-path nor the library path when glibc is configured with > > --enable-hardcoded-path-in-tests. This fixes BZ #28067. > > I was about to push a fix for this change, but your were faster. > > LGTM, one suggestion below. > > Reviewed-by: Adhemerval Zanella > > > --- > > posix/tst-spawn5.c | 30 +++++++++++++++++++----------- > > 1 file changed, 19 insertions(+), 11 deletions(-) > > > > diff --git a/posix/tst-spawn5.c b/posix/tst-spawn5.c > > index 277b848794..8649bb5094 100644 > > --- a/posix/tst-spawn5.c > > +++ b/posix/tst-spawn5.c > > @@ -40,6 +40,7 @@ static int restart; > > /* Hold the four initial argument used to respawn the process, plus > > the extra '--direct' and '--restart', and a final NULL. */ > > static char *initial_argv[7]; > > +static int initial_argv_count; > > > > #define CMDLINE_OPTIONS \ > > { "restart", no_argument, &restart, 1 }, > > @@ -133,11 +134,16 @@ static void > > spawn_closefrom_test (posix_spawn_file_actions_t *fa, int lowfd, int highfd, > > int *extrafds, size_t nextrafds) > > { > > - /* 6 elements from initial_argv (path to ld.so, '--library-path', the > > - path', application name', '--direct', and '--restart'), up to > > - 2 * maximum_fd arguments (the expected open file descriptors), plus > > - NULL. */ > > - enum { argv_size = array_length (initial_argv) + 2 * NFDS + 1 }; > > + /* 3 or 6 elements from initial_argv: > > + + path to ld.so optional > > + + --library-path optional > > + + the library path optional > > + + application name > > + + --direct > > + + --restart > > + up to 2 * maximum_fd arguments (the expected open file descriptors), > > + plus NULL. */ > > + int argv_size = initial_argv_count + 2 * NFDS + 1; > > char *args[argv_size]; > > int argc = 0; > > > > @@ -268,12 +274,14 @@ do_test (int argc, char *argv[]) > > if (restart) > > handle_restart (argc, argv); > > > > - initial_argv[0] = argv[1]; /* path for ld.so */ > > - initial_argv[1] = argv[2]; /* "--library-path" */ > > - initial_argv[2] = argv[3]; /* the library path */ > > - initial_argv[3] = argv[4]; /* the application name */ > > - initial_argv[4] = (char *) "--direct"; > > - initial_argv[5] = (char *) "--restart"; > > + int i; > > + > > + for (i = 0; i < (argc == 5 ? 4 : 1); i++) > > + initial_argv[i] = argv[i + 1]; > > I used: > > TEST_VERIFY_EXIT (argc == 2 || argc == 5); > int i; > for (i = 0; i < argc - 1; i++) > initial_argv[i] = argv[i + 1]; Done. > > + initial_argv[i++] = (char *) "--direct"; > > + initial_argv[i++] = (char *) "--restart"; > > + > > + initial_argv_count = i; > > > > do_test_closefrom (); > > > > Here is the v3 patch I am checking in. Thanks. -- H.J.