On Fri, Jul 18, 2025 at 05:50:21PM +0000, Dag-Erling Smørgrav wrote: > The branch main has been updated by des: > > URL: > https://cgit.FreeBSD.org/src/commit/?id=d63ffdd1ef6368407b35d415237b95cc739d8073 > > commit d63ffdd1ef6368407b35d415237b95cc739d8073 > Author: Dag-Erling Smørgrav <d...@freebsd.org> > AuthorDate: 2025-07-18 17:48:59 +0000 > Commit: Dag-Erling Smørgrav <d...@freebsd.org> > CommitDate: 2025-07-18 17:49:34 +0000 > > tzcode: Fix time zone change detection. > > Prior to the 2022g import, tzloadbody() returned -1 on error. Now it > returns an errno code. When I updated the time zone change detection > logic to match, I improperly returned errno in all cases, which means > that if the time zone file has not changed since we last loaded it, > tzloadbody() returns a random errno value instead of 0. > > Fixes: bc42155199b5 > MFC after: 1 week > Sponsored by: Klara, Inc. > Sponsored by: NetApp, Inc. > Reviewed by: markj > Differential Revision: https://reviews.freebsd.org/D51405 > --- > contrib/tzcode/localtime.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/contrib/tzcode/localtime.c b/contrib/tzcode/localtime.c > index f5814a43da54..69b5f0183e2c 100644 > --- a/contrib/tzcode/localtime.c > +++ b/contrib/tzcode/localtime.c > @@ -408,10 +408,8 @@ change_in_tz(const char *name) > static char old_name[PATH_MAX]; > static struct stat old_sb; > struct stat sb; > - int error; > > - error = stat(name, &sb); > - if (error != 0) > + if (stat(name, &sb) != 0) > return -1; > > if (strcmp(name, old_name) != 0) { > @@ -510,13 +508,11 @@ tzloadbody(char const *name, struct state *sp, bool > doextend, > * 'doextend' to ignore TZDEFRULES; the change_in_tz() > * function can only keep state for a single file. > */ > - int ret = change_in_tz(name); > - if (ret <= 0) { > - /* > - * Returns an errno value if there was an error, > - * and 0 if the timezone had not changed. > - */ > + switch (change_in_tz(name)) { > + case -1: > return errno; > + case 0: > + return 0; > } > } > fid = _open(name, O_RDONLY | O_BINARY); >
Hey DES, This commit broke buildworld: ==== BEGIN LOG ==== /usr/src/contrib/tzcode/localtime.c:512:11: error: no case matching constant switch condition '1' [-Werror] 512 | switch (change_in_tz(name)) { | ^~~~~~~~~~~~~~~~~~ /usr/src/contrib/tzcode/localtime.c:433:25: note: expanded from macro 'change_in_tz' 433 | #define change_in_tz(X) 1 ==== END LOG ==== Thanks, -- Shawn Webb Cofounder / Security Engineer HardenedBSD Signal Username: shawn_webb.74 Tor-ified Signal: +1 303-901-1600 / shawn_webb_opsec.50 https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc
signature.asc
Description: PGP signature