From: Omar Polo Subject: Re: gotwebd: branches modification vs show_repo_age off To: Omar Polo Cc: gameoftrees@openbsd.org Date: Fri, 11 Aug 2023 12:27:56 +0200 On 2023/08/07 18:01:10 +0200, Omar Polo wrote: > it was reported by xs on IRC. If show_repo_age is off we never set > the timestamp got_get_repo_age() and when this function is called by > branch() in pages.tmpl we print the garbage on the stack as timestamp. > In xs case it happened to be a number equal to or greater than the > current timestamp and so print "right now" always. > > So, drop the check in got_get_repo_age() and always initialize the > repo_age to zero, and respect show_repo_age in an upper layer. this is now in. > diff /home/op/w/got > commit - 07d8d6083dc8bd84b2c7ca96068ce3c35f8c1dbf > path + /home/op/w/got > blob - a7525287e2c962f40938fd909cdb0b9142d1f605 > file + gotwebd/got_operations.c > --- gotwebd/got_operations.c > +++ gotwebd/got_operations.c > @@ -128,7 +128,6 @@ got_get_repo_age(time_t *repo_age, struct request *c, > got_get_repo_age(time_t *repo_age, struct request *c, const char *refname) > { > const struct got_error *error = NULL; > - struct server *srv = c->srv; > struct transport *t = c->t; > struct got_repository *repo = t->repo; > struct got_commit_object *commit = NULL; > @@ -138,8 +137,7 @@ got_get_repo_age(time_t *repo_age, struct request *c, > > TAILQ_INIT(&refs); > > - if (srv->show_repo_age == 0) > - return NULL; > + *repo_age = 0; > > error = got_ref_list(&refs, repo, "refs/heads", > got_ref_cmp_by_name, NULL); > blob - f481972feb3305dfe470ae86b2a645949baf4045 > file + gotwebd/gotweb.c > --- gotwebd/gotweb.c > +++ gotwebd/gotweb.c > @@ -1221,9 +1221,11 @@ done: > error = got_get_repo_owner(&repo_dir->owner, c); > if (error) > goto err; > - error = got_get_repo_age(&repo_dir->age, c, NULL); > - if (error) > - goto err; > + if (srv->show_repo_age) { > + error = got_get_repo_age(&repo_dir->age, c, NULL); > + if (error) > + goto err; > + } > error = gotweb_get_clone_url(&repo_dir->url, srv, repo_dir->path, > dirfd(dt)); > err: