Commit Briefs

Stefan Sperling

add a missing bounds-check in got-fetch-pack when parsing server response

The tokenize_refline() function could end up reading past the end of the buffer if the refline is not terminated with whitespace or \0.


Stefan Sperling

prevent NULL deref in got-fetch-pack if server does not announce capabilities

The my_capabilities pointer may remain NULL. Check for NULL before use.


Stefan Sperling

fix the error message shown when the server sends a bad ref line

Exposed by trying to run got clone -l against shithub.us over git:// found by abieber@



Stefan Sperling

work around spurious ACK responses from git servers in got-fetch-pack

The Git server can apparently send duplicate ACK responses even though we do not enable the multi_ack capability. According to the Git protocol docs the server should only send ACKs after receiving 'done' from the client if multi_ack has been enabled. However, a duplicate ACK response can be triggered by running 'got fetch -a' in our fetch_update_tag test. This resulted in the following error: got-fetch-pack: unknown side-band received from server got: bad packet received


Stefan Sperling

use size_t for loop indices to avoid signedness warnings; by emaste@freebsd

Same change as 16aeacf7088d, for subdirectories other than lib/


Christian Weisgerber

indentation fixes


Christian Weisgerber

Stop including <sys/syslimits.h> directly.

POSIX says the limits defined there are available from <limits.h>, which almost all affected source files already included anyway. ok millert stsp


Stefan Sperling

zap trailing tabs


Christian Weisgerber

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

ok stsp


Christian Weisgerber

Fix missing block grouping.

ok tracey stsp



Stefan Sperling

compute pack file's checksum during download and check it in got-fetch-pack

Compared to the previous version committed in 520a0c97 this code should compute the checksum correctly for any amount of pack file data bytes read from the socket at a time.