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
No binary (build failed)
—
(log yok)
| @@ -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" | |