From 68ffb9a85da9884880eed8ca2dab6ebf6c78729d Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 30 Dec 2006 19:43:35 +0000 Subject: make sure AUTOCONF_TIMESTAMP is filled up properly ... if user has a timezone of Factory for example, strftime() will overflow the string and leave us without a trailing "\n and all hell breaks loose when we compile --- scripts/kconfig/confdata.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'scripts/kconfig') diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index d38bbba93..b4c862a83 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -395,9 +395,18 @@ int conf_write(const char *name) char buf[sizeof("#define AUTOCONF_TIMESTAMP " "\"YYYY-MM-DD HH:MM:SS some_timezone\"\n")]; buf[0] = '\0'; - if (use_timestamp) - strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP " - "\"%Y-%m-%d %H:%M:%S %Z\"\n", localtime(&now)); + if (use_timestamp) { + size_t ret = \ + strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP " + "\"%Y-%m-%d %H:%M:%S %Z\"\n", localtime(&now)); + /* if user has Factory timezone or some other odd install, the + * %Z above will overflow the string leaving us with undefined + * results ... so let's try again without the timezone. + */ + if (ret == 0) + strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP " + "\"%Y-%m-%d %H:%M:%S\"\n", localtime(&now)); + } fprintf(out_h, "/*\n" " * Automatically generated C config: don't edit\n" " * Linux kernel version: %s\n" -- cgit v1.2.3