Commits


CHANGES for 0.79


sync dist file list


gotd regress style tweaks from op@


add a regression test for sending to an empty repository via gotd ok op@


fix capabilities announced by gotsh when no reference exist in repository ok op@


use sub-second precision when checking for objects/pack/ modification Convert from st.m_time (second-precision time_t) to st.m_tim (struct timespec). To compensate for the potential case where a filesystem provides resolution in seconds only, always read the directory if no pack files are known to exist. Otherwise, there is a race condition when gotd repo_write creates a new pack and a request arrives for repo_read shortly after. Caught by a regression test for gotd on empty repositories. Test failure pointed out by Mikhail. ok op@


make 'got clone -b' work for repositories which lack a HEAD reference ok op@


upate number elements stored in the delta cache when removing an element


add missing free() of delta buffers in several error paths


reduce delta cache size to avoid running out of memory on large pack files As reported by Jerome Kasper, got-index-pack would run out of memory while cloning projects like LLVM or the Linux kernel. The delta cache was pushed to its maximum size limit of ~2GB, which is much higher than the default user data limit on OpenBSD. Set the delta cache size limits to values which should result in the cache limiting itself to 128MB or less.


add dedicated compilation flag for the delta cache, separate from object cache


zero-initialize all of struct got_deflate_buf in got_deflate_init() Fixes a potential bogus free on error. got_deflate_end() relies on zb.flags to be initialized. It will try to free a bogus zb.outbuf pointer if zb.flags happens to set by uninitialized stack memory while we are calling got_deflate_end() in an error path.


zero-initialize all of struct got_inflate_buf in got_inflate_init() Fixes a potential bogus free on error. got_inflate_end() relies on zb.flags to be initialized. It will try to free a bogus zb.outbuf pointer if zb.flags happens to set by uninitialized stack memory while we are calling got_inflate_end() in an error path.


make gotd work as intended on an empty repository; regression test is upcoming


fix sending of capabilities from gotsh(1) in case repository has no refs


fix crash in got-send-pack when server does not announce any capabilities


remove trailing whitespace; patch by Josiah Frentsos


fix crash in gotd if client gets disconnected on error; reported by Mikhail


sync files from diff.git 29c010c8648ec861ee463bc8fa8c66a64dd01154 This brings in a build fix for OpenBSD/sparc64.


changelog markup fix


bump version number


CHANGES for 0.78


fix free() of wrong address in gotweb's parse.y Found by sthen via ports-gcc: gotweb/parse.y:504:3: warning: attempt to free a non-heap object 'file'


remove casts which make older gcc versions unhappy ../lib/diffreg.c:44: error: initializer element is not constant ../lib/diffreg.c:51: error: initializer element is not constant ../lib/diffreg.c:59: error: initializer element is not constant ../lib/diffreg.c:66: error: initializer element is not constant reported by Red on Libera IRC, and by sthen@ who pointed out such failures appearing in landry's sparc64 bulk build logs.


fix reference counting of raw objects opened via privsep helpers Such objects were never closed, resulting in memory and file descriptor leaks.