Commit Briefs


Thomas Adam

gotwebd: fix page title

due to an error in the order of the arguments to fcgi_printf that I've introduced last time I touched gotweb_render_header the title is now "/" (or SCRIPT_NAME) and one assets (the safari pinned tab svg) is a funny URL :)


Thomas Adam

tog: ensure stdin is a tty

This guards against {mis,ab}use such as `tog < /dev/null`. ok plus fix from op@


Thomas Adam

gotwebd: shrink struct server

keeping GOTWEBD_REPO_CACHESIZE * sizeof(struct cache_repo) inside the struct server makes it too large for imsg on some platforms (linux at least.) Instead, store a pointer and allocate the array when it's received on the child processes. ok stsp@


Thomas Adam

portable: MacOS: harden homebrew checks

When building got-portable for MacOS, don't assume the toolchain programs are in /usr/local. This used to be true before Apple silicon existed, but since then the paths have changed. Instead, ask brew(1) for its prefix (if it's installed), or default to /usr/local if not. Noticed by Lucas.


Thomas Adam

gotwebd: fix crash handling -D

Avoid crashing by corrupting the pointer instead of writing to it and fix how sym is generated: it shouldn't include the '=' sign. ok / improvement tb@


Thomas Adam

avoid a pointless malloc/free in got_reflist_insert() in my previous fix

suggested by op@


Thomas Adam

detect packed vs. on-disk reference collision when listing refs

ok op@


Thomas Adam

plug leak in the commit graph iterator

We fail to release the memory for the nodes. To fix it however, we some consumer of the commit graph iterator need to be corrected: the returned pointer is safe to be used only up until the next iter_next call; save a copy it if it's needed afterwards too. ok stsp@


Thomas Adam

gotwebd: fix usage of the commit graph iter

got_get_repo_commits mixes ids allocated on the heap and the one returned by the iter_next in the same variable, and then even attemp to free it. This is both a leak (we loose the pointer to the previously allocated id) and a possible invalid free since the object id pointer returned by the graph iterator is not to be passed to free(3). part of a bigger diff that's ok stsp@


Thomas Adam

add missing freaddrinfo

also spotted by valgrind. ok stsp@


Thomas Adam

release the memory used by the object cache

Leak spotted by valgrind. ok stsp@


Thomas Adam

replace an indirect call to idset_add(), via add_node(), with a direct call

Avoids leaking the node structure returned from add_node(). ok op@


Thomas Adam

got: fflush(stdout) after asking questions

Not everywhere getline does an implicit fflush, so we might end up not showing the prompt to the user. Spotted on alpine with muslc. ok Thomas Adams


Thomas Adam

free commit on error path

while here drop the ternary too: if add_node succeeds `new_node' is non-NULL. ok stsp@


Thomas Adam

plug leak: release nodes not added to the iter list

ok stsp@


Thomas Adam

got_commit_graph_close: free tailq contents

The tailq should ideally be empty when we reach got_commit_graph_close, but consumer code may exit the commit graph loop earlier. spotted by and ok stsp@


Thomas Adam

forbid rebase of references outside the refs/heads/ namespace

ok jrick


Thomas Adam

plug leak in resolve_symlink

ok stsp@


Thomas Adam

gotwebd: percent-decode the received query string

ok stsp@


Thomas Adam

plug mem leak in got_repo_pack_fds_open

pack_fds_tmp is not always free'd. However, while here, simplify it to not use a temporary array. ok stsp@


Thomas Adam

gotwebd: free obj_id and reflist in got_output_file_blame

ok stsp@


Thomas Adam

gotwebd: got_output_file_blame: free lines on error path

ok stsp@


Thomas Adam

gotwebd: free eline in got_gotweb_blame_cb loop

ok stsp@


Thomas Adam

gotwebd: drop superfluous check

commit_id is not NULL if got_repo_match_object_id returned successfully. ok stsp@