Commits


CHANGES for 0.104


gotwebd: fix out of bound access while handling the config For the first 13 iterations of the loop we read behind the start of the array. Instead of just adding a range check, rewrite the code to split the loop in two so it's easier to follow. Reported by Timo Myyrä ok stsp@


ensure that meta->dtab gets freed whenever we clear a meta entry


free leaked `got_delta_table` entries The first `nmeta - max_base_candidates` were not freed in `got_pack_create`. Patch by Kyle Ackerman ok op@


revert part of my previous commit which caused unstage.sh test failures Some parts of the code rely on staged_blob_id being NULL in certain cases. Restore this behaviour while keeping the segfault bug fixed.


fix a crash when unstaging a file which has been removed from disk reported by Johannes Thyssen Tishman


plug a memory leak in got_privsep_recv_send_remote_ref We didn't always call imsg_free(); while here also fix the `default` branch so it actually errors on unexpected messages. Diff from Kyle Ackerman with tweaks from tb@


plug an object leak introduced in my tagged-tag packing fix


remove a todo item that's done


fix pack file creation in the presence of tagged tag objects If a repository contains a tag that tags another tag we could fail with a "bad object data" error while creating pack files because the packed-object-enumeration code assumed that only commits get tagged, trying to parse the tagged tag object as if it were a commit. This issue affected 'got send' and 'gotadmin pack'. There is probably more work to do here because other weird cases are known to exist in the wild, such as git.git's refs/tags/junio-gpg-pub which tags a blob. Problem with 'got send' reported by jrick@


prevent tog segfault upon unexpected object type in ref list view If an unexpected object type is found while resolving a reference in the ref view, have tog exit with an "unknown object type" error instead of crashing. Found while playing with a repo which contains tags that tag tags.


add a todo item


fix incorrect error code raised from diff_modified_blob()


make got_object_open_loose_fd() return NO_OBJ error upon ENOENT Some callers were manually converting from ENOENT to NO_OBJ. Checking errno becomes increasingly unreliable the further up the call-chain we return to. Let's return NO_OBJ directly at the spot where the original error condition is detected.


trailing whitespace; from man -Tlint


gotd.conf: document macro syntax, stealing from gotwebd


use _POSIX_HOST_NAME_MAX instead of HOST_NAME_MAX this is to help -portable. Some systems don't define HOST_NAME_MAX at all, and assume instead that code will use sysctl(_SC_HOST_NAME_MAX) with a VLA or a dynamic allocation, which is completely backward and useless. So, use the _POSIX hammer on this one too. it's dirty, but it's better to strive to avoid gratious -portable changes. reported and discussed with Thomas Adam.


bump version number


CHANGES for 0.103


have 'make clean' remove gotd-secrets.conf file created by gotd regress


sync dist file list


have 'make clean' delete files generated by secrets regress


fix documentation of auth keyword in gotd.conf.5


wording improvements for gotd-secrets.conf man page


traverse regress/secrets during 'make regress'