diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2019-06-01 04:15:04 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2019-06-01 06:21:54 +0200 |
| commit | 92791a3fe15bb2d5c14039fbd531be73255f0c6d (patch) | |
| tree | e9e103fa96678705797b906b69fdeee90b6a753f /tests/sub | |
| parent | f60f05c0ea0fcd0557b4e8f29f3b9d9471d011dd (diff) | |
Fix obscure crash with rsource and $srctree pointing to a symlink
Sourcing a file with an absolute path and using rsource in it triggered
a relpath() between the absolute path and $srctree. Since e.g.
symlink/../bar/ = bar/ is not guaranteed for symlinks, this could lead
to the rsource'd file not being found if $srctree pointed to a symlink.
Switch to a simpler, more textual method for stripping $srctree from
glob results, which should be robust against symlink shenanigans. This
also makes the code a bit easier to follow.
Discovered by Marc Herbert.
Piggyback some minor cleanup.
Diffstat (limited to 'tests/sub')
| -rw-r--r-- | tests/sub/Kconfig_symlink_2 | 1 | ||||
| -rw-r--r-- | tests/sub/Kconfig_symlink_3 | 2 | ||||
| -rw-r--r-- | tests/sub/sub/Kconfig_symlink_1 | 2 |
3 files changed, 5 insertions, 0 deletions
diff --git a/tests/sub/Kconfig_symlink_2 b/tests/sub/Kconfig_symlink_2 new file mode 100644 index 0000000..aeba985 --- /dev/null +++ b/tests/sub/Kconfig_symlink_2 @@ -0,0 +1 @@ +rsource "Kconfig_symlink_3" diff --git a/tests/sub/Kconfig_symlink_3 b/tests/sub/Kconfig_symlink_3 new file mode 100644 index 0000000..20b4e06 --- /dev/null +++ b/tests/sub/Kconfig_symlink_3 @@ -0,0 +1,2 @@ +config FOUNDME + bool diff --git a/tests/sub/sub/Kconfig_symlink_1 b/tests/sub/sub/Kconfig_symlink_1 new file mode 100644 index 0000000..bceec8b --- /dev/null +++ b/tests/sub/sub/Kconfig_symlink_1 @@ -0,0 +1,2 @@ +# Sources tests/sub/Kconfig_symlink_2, with an absolute path +source "$(KCONFIG_SYMLINK_2)" |
