purge-locales: Handle empty locale directories better
If a locale directory is empty, shell code like "for langdir in $$dir/*;" will loop once with langdir set to "path/to/dir/*", rather than not looping at all, which would obviously be the desired behavior. Then "grep -qx $${langdir##*/}" ungoes two shell expansions (how?) that transform the expression from "${langdir##*/}" to "*" to "list of all files in buildroot root dir". Which is most certainly not what this command was supposed to do. If one of those files happens to be an 8GB flash image, grep consumes all available memory and crashes trying to search it. Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
61451d7dd9
commit
bbe29b9896
5
Makefile
5
Makefile
@ -583,7 +583,10 @@ define PURGE_LOCALES
|
||||
do \
|
||||
for langdir in $$dir/*; \
|
||||
do \
|
||||
grep -qx $${langdir##*/} $(LOCALE_WHITELIST) || rm -rf $$langdir; \
|
||||
if [ -e "$${langdir}" ]; \
|
||||
then \
|
||||
grep -qx "$${langdir##*/}" $(LOCALE_WHITELIST) || rm -rf $$langdir; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
if [ -d $(TARGET_DIR)/usr/share/X11/locale ]; \
|
||||
|
Loading…
Reference in New Issue
Block a user