mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
prereq-build: do not replace binaries with symlinks
Some programs, like bash and patch, are checked by prereq stage and have a symlink installed, but then is later built from source. Now that the prereq-build checks are not successful just by finding the file alone, it is possible for a new symlink to overwrite the installed binary. If a normal file is found in staging_dir/host/bin, let the check look for the associated stampfile, and if found, skip creation of a symlink and exit successfully. Suggested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> Signed-off-by: Michael Pratt <mcpratt@pm.me>
This commit is contained in:
parent
9ffd6013b9
commit
729909c07f
@ -110,6 +110,10 @@ define SetupHostCommand
|
|||||||
*" -> $$$$$$$$bin"*) \
|
*" -> $$$$$$$$bin"*) \
|
||||||
[ -x "$(STAGING_DIR_HOST)/bin/$(strip $(1))" ] && exit 0 \
|
[ -x "$(STAGING_DIR_HOST)/bin/$(strip $(1))" ] && exit 0 \
|
||||||
;; \
|
;; \
|
||||||
|
"-"*) \
|
||||||
|
find "$(STAGING_DIR_HOST)/stamp" | grep $(strip $(1)) && \
|
||||||
|
[ -x "$(STAGING_DIR_HOST)/bin/$(strip $(1))" ] && exit 0 \
|
||||||
|
;; \
|
||||||
esac; \
|
esac; \
|
||||||
ln -sf "$$$$$$$$bin" "$(STAGING_DIR_HOST)/bin/$(strip $(1))"; \
|
ln -sf "$$$$$$$$bin" "$(STAGING_DIR_HOST)/bin/$(strip $(1))"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
|
Loading…
Reference in New Issue
Block a user