Commits


inline struct got_object_id in struct got_object_qid Saves us from doing a malloc/free call for every item on the list. ok op@


remove needless header inclusion; lib/pack.c does not need got_opentemp.h


factorize imsg_clear calls after imsg_flush failures imsg_clear frees and closes resources allocated as part of enqueueing imsgs so it's a no-op after reads. discussed with and ok stsp@


reuse existing deltas when creating pack files tested by thomas, naddy, and myself


fix double-free and double-close issues in error paths of got_packidx_open()


fix file corruption regression in 'got checkout' caused by commit db696021 got-read-pack must rewind its files temporary files before reusing them. Problem reported by naddy ok tracey naddy


add missing checks for reads beyond the mapped memory area of a pack file


fix bogus "object not found" errors when object ID begins with 00 ok thomas_adam


wrap overlong lines


add O_CLOEXEC (close-on-exec) to openat(2) calls suggested by millert ok thomas_adam


portable: add FreeBSD support This adds the capability to compile got-portable on FreeBSD.


portable: initial Linux compilation This commit modifies the GoT main branch to be able to compile it under linux.


don't scan pack index offsets for large values if pack file is < 2GB This saves an iteration over the entire h->offsets array when opening a pack index which should not contain large offsets in the first place. ok millert@


handle pack index files which lack a corresponding pack file ok millert


make got_packidx_get_packfile_path() usable for callers who only have a path


switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp


expose got_pack_parse_ref_delta() for library-internal use This will be needed by a future 'gotadmin listpack' command.


expose got_packidx_get_object_offset() for library-internal use This will be needed by a future 'gotadmin listpack' command.


mark got_pack_stop_privsep_child() static; it is only used inside pack.c


fix a leaky ibuf. ok stsp


add got_packidx_get_packfile_path() for library-internal use


when reading a pack index byte-swap fields at compile-time where possible suggested by mpi@ ages ago


make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy


add fd field to got_repository, modify got_packidx_open to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp


fix matching the object ID of the first object in a pack index An object ID which appears first in a pack index was wrongly ignored by got_packidx_match_id_str_prefix(). The result was a spurious "object not found" error when this object ID was passed on the command line. Reported by jrick on freenode who was lucky enough to this edge case!