Commits


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!


use the POSIX standard endian functions and explicitly include <endian.h> ok stsp


do not rely on <zlib.h> to pull in <unistd.h> ok stsp