Commits


gotwebd: percent-decode the received query string ok stsp@


fix snprintf error handling follow the "proper secure idiom" described in the CAVEATS section of printf(3). reminded by tb@ and millert@


got commit: add flag to specify the author This adds a new flag, `got commit -A', that allows to specify the commit author but retains the "committer" (which is obtained as usual via GOT_AUTHOR, got.conf or git config.) with lots of help from and ok stsp


portable: add back sys/queue.h Now that the handling of including sys/queue.h is better, there's no need to remove those lines from the source. Copy the location of those original sys/queue.h lines from upstream at the same line number, so as to avoid any conflicts in the future.


fix tag signing when the key file does not exist This should fail without creating any tag. Before, ssh-keygen(1) would print an error to stderr, but got would create an unsigned tag. ok op@


create and verify tags signed by SSH keys This adds a new -s flag to 'got tag' that specifies the signer identity (for example, a key file) of the tagger. The tag object will include a signature that validates each of the tag object headers and the tag message. Verifying these signed tags requires maintaining an allowed signers file which maps signer identities (i.e. the email address of the tagger) to SSH public keys. See ssh-keygen(1) for more details of the allowed signers file. After creating this file and providing the path to it in got.conf(5) using the allowed_signers option, tags may be verified using with 'got tag -V tag_name'. The return code will be non-zero if a signature fails to verify. ok stsp@


move got_opentempfd() out of lib/diff.c again ok tracey


implement support for commit coloring in got-read-pack for speed ok op, tracey


check return value of RB_INSERT; ok + memleak fix by op@


move got_errors[] table into a single compilation unit (error.c) ok stsp


portable: make UUID includes generic Move the detection of UUID header files to be included portably. This will have no functional effect until MacOS detection is put in place.


portable: remove extraneous strerror_r check On a __GLIBC__ system, we need to use __xpg_strerror_r() -- this is already checked for, so simply one of these checks to reduce code changes from upstream.


for portability, handle errno variations upon open(2) failure with O_NOFOLLOW Problem pointed out by naddy for FreeBSD -portable. Discussed with millert, thomas adam, and naddy.


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


sterror: use XPG version on GLIBC It looks like autoconf 2.69 will not provide XPG strerror_r even if the appropriate macros are set which request the XPG version. Until this is fixed in autoconf and that version is more widely-adopted, this approach will provide what's required. Originally from Stefan Sperling, tweaked by me.


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


switch to strerror_r(3) in error.c for thread-safety


introduce got_custom_error array to support multiple errors in flight This is still not thread-safe but at least avoids errors overwriting each other in single-threaded contexts.


add got_error_fmt() got_error_fmt() could eventually replace got_error_path() which has already been used to construct errors with strings that are not actually paths... ok millert@


add got_error_from_errno_fmt() for more flexibility in error messages suggested by and ok millert


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


fix NULL deref in got_error_from_errno via got_error_uuid (found by jasper)


error.c: use <limits.h> instead of <sys/param.h>


introduce got_error_path()


rename got_error_prefix_errno() to got_error_from_errno()