Commits


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@


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.


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@


avoid a pointless malloc/free in got_reflist_insert() in my previous fix suggested by op@


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


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@


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@


add missing freaddrinfo also spotted by valgrind. ok stsp@


release the memory used by the object cache Leak spotted by valgrind. ok stsp@


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@


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


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


plug leak: release nodes not added to the iter list ok stsp@


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@


forbid rebase of references outside the refs/heads/ namespace ok jrick


plug leak in resolve_symlink ok stsp@


gotwebd: percent-decode the received query string ok stsp@


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@


gotwebd: free obj_id and reflist in got_output_file_blame ok stsp@


gotwebd: got_output_file_blame: free lines on error path ok stsp@


gotwebd: free eline in got_gotweb_blame_cb loop ok stsp@


gotwebd: drop superfluous check commit_id is not NULL if got_repo_match_object_id returned successfully. ok stsp@


sync file with diff.git 279d77aa1e4b921090e702a6a8a5a94a98a062b1 and use the faster headers-only mode for diff3


got: don't search through ignored paths and files on commit


gotwebd: kill unused id_str in got_output_repo_tree ok stsp@