Download raw body.
gotwebd crash
On 2023/11/25 21:39:16 +0100, Stefan Sperling <stsp@stsp.name> wrote:
> It looks like the problem is a call to refresh_packidx_paths() within
> functions called while looping over repo->pathidx_paths:
>
> got_object_get_type() -> got_object_open() -> got_object_open_packed() ->
> got_repo_search_packidx() -> refresh_packidx_paths()
>
> The patch below should fix it. This is a quick fix just for this code path.
> Other places looping over this list don't seem to be doing anything dangerous.
> This could be improved upon later but I think it is good enough for now.
>
> ok?
ok op@ as a quick measure.
nit below
> --- lib/repository.c
> +++ lib/repository.c
> @@ -713,6 +713,7 @@ got_repo_open(struct got_repository **repop, const cha
>
> RB_INIT(&repo->packidx_bloom_filters);
> TAILQ_INIT(&repo->packidx_paths);
> + repo->no_packidx_refresh = 0;
it's pointless to set to zero right after calloc().
> for (i = 0; i < nitems(repo->privsep_children); i++) {
> memset(&repo->privsep_children[i], 0,
gotwebd crash