SOURCE_DATE_EPOCH must be in base 10

This commit is contained in:
Rangi
2026-03-30 21:18:52 -04:00
parent 167a7ee80c
commit 25bf0e9e2c
3 changed files with 20 additions and 3 deletions
+5 -3
View File
@@ -501,9 +501,11 @@ int main(int argc, char *argv[]) {
// https://reproducible-builds.org/docs/source-date-epoch/
time_t now = time(nullptr);
if (char const *sourceDateEpoch = getenv("SOURCE_DATE_EPOCH"); sourceDateEpoch) {
// Use `strtoul`, not `parseWholeNumber`, because SOURCE_DATE_EPOCH does
// not conventionally support our custom base prefixes
now = static_cast<time_t>(strtoul(sourceDateEpoch, nullptr, 0));
if (std::optional<uint64_t> epoch = parseWholeNumber(sourceDateEpoch, BASE_10); epoch) {
now = static_cast<time_t>(*epoch);
} else {
warnx("Ignoring invalid `SOURCE_DATE_EPOCH` value \"%s\"", sourceDateEpoch);
}
}
sym_Init(now);