Commit Briefs
gotwebd: fix briefs navigation broken in 4a9629420
got_get_repo_commits iterates over the commits and build a queue for later display. My previous memleak fix moved the TAILQ_INSERT_TAIL *before* the logic to exit the loop and so it broke the pagination. This fixes it by delaying the insertion into the queue, but also by moving the check for the "previous" button after we've opened the commit. ok tracey
gotwebd: percent-encode generated URLs
This adds a new helper function `gotweb_link' that outputs an HTML link with the parameter correctly escaped. ok stsp@
portable: maintscript: wrap nproc
Wrap nproc for non-Linux systems so this script can run on, say, FreeBSD.
portable: maintscript: use env for bash
Set this script's shebang line to use env to look for bash, as bash isn't always guaranteed to be installed to /bin, especally on BSD systems.
gotwebd: add missing closing for div tags_content
reported by the W3C validator.
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 :)
tog: ensure stdin is a tty
This guards against {mis,ab}use such as `tog < /dev/null`. ok plus fix from op@
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@
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@