From d72f065e71931c7f95f08e394d320b235b523ee4 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Thu, 1 Nov 2018 23:19:12 -0700 Subject: Check if .config is a regular file before clobbering it Fixes #1014. Signed-off-by: Alexey Neyman diff --git a/ct-ng.in b/ct-ng.in index 5a5bb33..2512958 100644 --- a/ct-ng.in +++ b/ct-ng.in @@ -101,26 +101,29 @@ NCONF := $(CT_LIBEXEC_DIR)/nconf # TBD needed? We do supply the defconfig name explicitly below export srctree=$(CT_LIB_DIR) -.PHONY: menuconfig nconfig oldconfig savedefconfig defconfig +.PHONY: menuconfig nconfig oldconfig savedefconfig defconfig check-config -menuconfig: +check-config: + @[ ! -e .config -o -f .config ] || { echo ".config is not a regular file:"; ls -dl .config; exit 1; } >&2 + +menuconfig: check-config @$(CT_ECHO) " CONF $@" $(SILENT)$(MCONF) $(KCONFIG_TOP) -nconfig: +nconfig: check-config @$(CT_ECHO) " CONF $@" $(SILENT)$(NCONF) $(KCONFIG_TOP) -oldconfig: .config +oldconfig: .config check-config @$(CT_ECHO) " CONF $@" $(SILENT)$(sed) -i -r -f $(CT_LIB_DIR)/scripts/upgrade.sed $< $(SILENT)$(CONF) --silent$@ $(KCONFIG_TOP) -savedefconfig: .config +savedefconfig: .config check-config @$(CT_ECHO) ' GEN $@' $(SILENT)$(CONF) --savedefconfig=$${DEFCONFIG-defconfig} $(KCONFIG_TOP) -defconfig: +defconfig: check-config @$(CT_ECHO) ' CONF $@' $(SILENT)$(CONF) --defconfig=$${DEFCONFIG-defconfig} $(KCONFIG_TOP) diff --git a/samples/samples.mk b/samples/samples.mk index 7b356dd..13f8779 100644 --- a/samples/samples.mk +++ b/samples/samples.mk @@ -130,7 +130,7 @@ endef # How we do recall one sample PHONY += $(CT_SAMPLES) -$(CT_SAMPLES): +$(CT_SAMPLES): check-config @$(CT_ECHO) " CONF $@" $(SILENT)$(CONF) --defconfig=$(call sample_dir,$@)/crosstool.config $(KCONFIG_TOP) @echo -- cgit v0.10.2-6-g49f6