[Bug 277863] Possible regression in mktime(3)
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 277863] Possible regression in mktime(3)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 25 Mar 2024 12:37:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277863 Dag-Erling Smørgrav <des@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|New |Closed Resolution|--- |Works As Intended --- Comment #8 from Dag-Erling Smørgrav <des@FreeBSD.org> --- Your code assumes that errno will be unchanged if mktime() succeeds. This is incorrect. Here is a better test program: #include <errno.h> #include <stdio.h> #include <time.h> int main(void) { struct tm tm = { .tm_mday = 1, .tm_year = 69, .tm_yday = -1 }; time_t t = mktime(&tm); if (tm.tm_yday == -1) { perror("mktime failed"); return 1; } printf("%04d-%02d-%02d %02d:%02d:%02d %s = %ld\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, tzname[0], (long)t); return 0; } If you want to argue that errno _should_ be zero if mktime() succeeds, I invite you to make that argument to the tzcode maintainers (https://www.iana.org/time-zones), the Austin Group (https://www.austingroupbugs.net/), and the C standardization committee (https://www.open-std.org/jtc1/sc22/wg14/), but please take the time to familiarize yourself with prior work in this area (notably WG14 N3147) first. -- You are receiving this mail because: You are the assignee for the bug.