git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 01/10] t/test-lib: fix quoting of TEST_RESULTS_SAN_FILE

From
Patrick Steinhardt <ps@pks.im>
Date
Oct 15, 2024, 11:45 UTC
Message-ID
<a514f5d14a7263750f1fa4bcc04e3daf2901c3eb.1728992306.git.ps@pks.im>
In-Reply-To
<cover.1728992306.git.ps@pks.im>

When assembling our LSAN_OPTIONS that configure the leak sanitizer we end up prepending the string with various different colon-separated options via calls to `prepend_var`. One of the settings we add is the path where the sanitizer should store logs, which can be an arbitrary filesystem path.

Naturally, filesystem paths may contain whitespace characters. And while it does seem as if we were quoting the value, we use escaped quotes and consequently split up the value if it does contain spaces. This leads to the following error in t0000 when having a value with whitespaces:

    .../t/test-lib.sh: eval: line 64: unexpected EOF while looking for matching `"'
    ++ return 1
    error: last command exited with $?=1
    not ok 5 - subtest: 3 passing tests

The error itself is a bit puzzling at first. The basic problem is that the code sees the leading escaped quote during eval, but because we truncate everything after the space character it doesn't see the trailing escaped quote and thus fails to parse the string.

Properly quote the value to fix the issue while using single-quotes to quote the inner value passed to eval. The issue can be reproduced by t0000 with such a path that contains spaces.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 t/test-lib.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index b1a8ee5c002..241198ba95f 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1572,7 +1572,7 @@ then
 
 	prepend_var LSAN_OPTIONS : dedup_token_length=9999
 	prepend_var LSAN_OPTIONS : log_exe_name=1
-	prepend_var LSAN_OPTIONS : log_path=\"$TEST_RESULTS_SAN_FILE\"
+	prepend_var LSAN_OPTIONS : log_path="'$TEST_RESULTS_SAN_FILE'"
 	export LSAN_OPTIONS
 
 elif test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check" ||
-- 
2.47.0.72.gef8ce8f3d4.dirty
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 23 of 58 in “Platform compatibility fixes”
  1. 00/10 Platform compatibility fixesPatrick Steinhardt, Oct 14, 2024
  2. 01/10 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILEPatrick Steinhardt, Oct 14, 2024
  3. Taylor BlauOct 14, 2024
  4. 02/10 t/test-lib: wire up NO_ICONV prerequisitePatrick Steinhardt, Oct 14, 2024
  5. 03/10 t/lib-gitweb: test against the build version of gitwebPatrick Steinhardt, Oct 14, 2024
  6. Taylor BlauOct 14, 2024
  7. Patrick SteinhardtOct 15, 2024
  8. 04/10 t/lib-gpg: fix setup of GNUPGHOME in MinGWPatrick Steinhardt, Oct 14, 2024
  9. Taylor BlauOct 14, 2024
  10. 05/10 t1401: make invocation of tar(1) work with Win32-provided onePatrick Steinhardt, Oct 14, 2024
  11. Eric SunshineOct 14, 2024
  12. Taylor BlauOct 15, 2024
  13. 06/10 t3404: work around platform-specific behaviour on macOS 10.15Patrick Steinhardt, Oct 14, 2024
  14. 07/10 t5500, t5601: skip tests which exercise paths with '[::1]' on CygwinPatrick Steinhardt, Oct 14, 2024
  15. Taylor BlauOct 14, 2024
  16. 08/10 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 14, 2024
  17. 09/10 builtin/credential-cache: fix missing parameter for stub functionPatrick Steinhardt, Oct 14, 2024
  18. Taylor BlauOct 14, 2024
  19. 10/10 http: fix build error on FreeBSDPatrick Steinhardt, Oct 14, 2024
  20. Taylor BlauOct 14, 2024
  21. Patrick SteinhardtOct 15, 2024
  22. 00/10 Platform compatibility fixesPatrick Steinhardt, Oct 15, 2024
  23. 01/10 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILEPatrick Steinhardt, Oct 15, 2024
  24. 02/10 t/test-lib: wire up NO_ICONV prerequisitePatrick Steinhardt, Oct 15, 2024
  25. Taylor BlauOct 15, 2024
  26. Patrick SteinhardtOct 16, 2024
  27. Taylor BlauOct 16, 2024
  28. Taylor BlauOct 16, 2024
  29. Patrick SteinhardtOct 17, 2024
  30. 03/10 t/lib-gitweb: test against the build version of gitwebPatrick Steinhardt, Oct 15, 2024
  31. 04/10 t/lib-gpg: fix setup of GNUPGHOME in MinGWPatrick Steinhardt, Oct 15, 2024
  32. James LiuOct 16, 2024
  33. 05/10 t1401: make invocation of tar(1) work with Win32-provided onePatrick Steinhardt, Oct 15, 2024
  34. James LiuOct 16, 2024
  35. 06/10 t3404: work around platform-specific behaviour on macOS 10.15Patrick Steinhardt, Oct 15, 2024
  36. James LiuOct 16, 2024
  37. 07/10 t5500, t5601: skip tests which exercise paths with '[::1]' on CygwinPatrick Steinhardt, Oct 15, 2024
  38. 08/10 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 15, 2024
  39. James LiuOct 16, 2024
  40. James LiuOct 16, 2024
  41. 09/10 builtin/credential-cache: fix missing parameter for stub functionPatrick Steinhardt, Oct 15, 2024
  42. 10/10 http: fix build error on FreeBSDPatrick Steinhardt, Oct 15, 2024
  43. 00/10 Platform compatibility fixesPatrick Steinhardt, Oct 16, 2024
  44. 01/10 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILEPatrick Steinhardt, Oct 16, 2024
  45. 02/10 t/test-lib: wire up NO_ICONV prerequisitePatrick Steinhardt, Oct 16, 2024
  46. brian m. carlsonOct 17, 2024
  47. Patrick SteinhardtOct 17, 2024
  48. Josh SteadmonOct 25, 2024
  49. t6006: fix prereq handling with `test_format ()`Patrick Steinhardt, Oct 28, 2024
  50. Taylor BlauOct 28, 2024
  51. 03/10 t/lib-gitweb: test against the build version of gitwebPatrick Steinhardt, Oct 16, 2024
  52. 04/10 t/lib-gpg: fix setup of GNUPGHOME in MinGWPatrick Steinhardt, Oct 16, 2024
  53. 05/10 t1401: make invocation of tar(1) work with Win32-provided onePatrick Steinhardt, Oct 16, 2024
  54. 06/10 t3404: work around platform-specific behaviour on macOS 10.15Patrick Steinhardt, Oct 16, 2024
  55. 07/10 t5500, t5601: skip tests which exercise paths with '[::1]' on CygwinPatrick Steinhardt, Oct 16, 2024
  56. 08/10 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 16, 2024
  57. 09/10 builtin/credential-cache: fix missing parameter for stub functionPatrick Steinhardt, Oct 16, 2024
  58. 10/10 http: fix build error on FreeBSDPatrick Steinhardt, Oct 16, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.