Commits
- Commit:
8b925c6ccd3968917253ea191906a1710c40ed2d
- From:
- Thomas Adam <thomas@xteddy.org>
- Date:
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.
- Commit:
5d120ea8410ddc2808e476d554ba931dc19d8c50
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use capsicum on FreeBSD
Thanks to the design of Got, the libexec helpers don't need any resource
(in fact they run under pledge "stdio recvfd" on OpenBSD) and so using
cap_enter(2) on FreeBSD is dead-easy.
While the main process can't be sandboxed on FreeBSD (needs to exec the
helpers), all the tough work is done by these small libexec helpers
which is also the biggest attack surface.
tested by naddy, ok thomas
- Commit:
e9f1a409ccc66a6fb79a3022695ca78ad26972ea
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
imsg_add() frees its msg argument on error; avoid double-free in error paths
- Commit:
b637eb2e40befbfc982edebcdd992ca0add5defc
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
apply time-based rate-limiting to got-fetch-pack download progress output
- Commit:
97799ccd4b67a81f97039305d4fdd66588da9962
- From:
- Thomas Adam <thomas@xteddy.org>
- Date:
portable: add support for landlock
landlock is a new set of linux APIs that is conceptually similar to
unveil(2): the idea is to restrict what a process can do on a
specified part of the filesystem. There are some differences in the
behaviour: the major one being that the landlock ruleset is inherited
across execve(2).
This just restricts the libexec helpers by completely revoking ANY
filesystem access; after all they are the biggest attack surface. got
send/fetch/clone *may* end up spawning ssh(1), so at the moment is not
possible to landlock the main process.
From Omar Polo.
- Commit:
35add24aa636945d591ac62534d3caf3e906621a
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
plug memory leaks in got-fetch-pack and got-send-pack
ok naddy
- Commit:
ea83355f0a329b34b741dffc0cd0542ed96afb9a
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
let 'got fetch' send all references to the server to avoid redundant downloads
Problem reported by naddy.
ok naddy
- Commit:
01bb5a15144ece7ca707994fb56e1847c76a1a92
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas.adam@smoothwall.net>
- Date:
fix some integers that had a slightly wrong type; patch by Omar Polo
- Commit:
92a9e85d28a30997176ce0d3c2915e3ea70782c7
- From:
- Thomas Adam <thomas@xteddy.org>
- Date:
portable: add FreeBSD support
This adds the capability to compile got-portable on FreeBSD.
- Commit:
dd038bc6ec835ad3fd3c0b5303b8af9ad506c8cc
- From:
- Thomas Adam <thomas@xteddy.org>
- Via:
- Thomas Adam <thomas.adam@smoothwall.net>
- Date:
portable: initial Linux compilation
This commit modifies the GoT main branch to be able to compile it under
linux.
- Commit:
77d7d3bb1aabafae6c020c8a07a6e9f4f7885c9b
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
de-duplicate a constant used by both 'got fetch' and 'got send'
Both GOT_FETCH_PKTMAX and GOT_SEND_PKTMAX had the same value.
Declare this value as GOT_PKT_MAX in got_lib_pkt.h instead.
- Commit:
bd3d9e54cb422cb58d52b267c6a8afc3376842d2
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
move more code used by got-send-pack and got-fetch-pack to a common file
Move functions and data structures which implement Git protocol features
required for fetching and sending pack files to new files lib/gitproto.c
and lib/got_lib_gitproto.h.
This code was duplicated in got-fetch-pack and got-send-pack.
No functional change.
- Commit:
f024663dea0dea05a0d4c17d2314f38f73e85bc6
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
move pkt code used by got-fetch-pack and got-send-pack to a common file
The Git protocol uses a simple packet framing format. The got-fetch-pack
and got-send-pack programs contained identical copies of functions to
support this format. Move related functions to new file lib/pkt.c and
link both programs against this common implementation.
No functional change.
- Commit:
8991a328535f89f3f2257269f5c2d3fcec8bda69
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
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.
- Commit:
a90356f7c470563a35922c4cbb01824558dcf207
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
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.
- Commit:
14d2b281dd2fafec8beebfca6b5911b0ff21d676
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
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@
- Commit:
9ca26ac322eae778bdfe032617ce9f6af859bb7a
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
style fix: avoid comparison of pointer variable against 0 in got-fetch-pack
- Commit:
98f64f14c3dc52ec6afc00acc53dc9f42399d363
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
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
- Commit:
6059809a13b5d528052e38f84661039e6565f458
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
use size_t for loop indices to avoid signedness warnings; by emaste@freebsd
Same change as 16aeacf7088d, for subdirectories other than lib/
- Commit:
62d463cac1fd99c423acb07c0367c649724a2a9a
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
indentation fixes
- Commit:
23c57b285fdcf9a8a0a5913ea096232038bf0ac3
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
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
- Commit:
3168e5da215c7b442d231f40bfd61df067505d8b
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
zap trailing tabs
- Commit:
81a12da58651e79380d81dea7020bf6af20bb28b
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
do not rely on <zlib.h> to pull in <unistd.h>
ok stsp
- Commit:
631179de38cd91f5e53311c37386314fa2504ccd
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
Fix missing block grouping.
ok tracey stsp
- Commit:
1d72a2a0ee2d5c4546c0471e054c0d81e407bc72
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
represent packfile hash as byte array in the privsep layer, not as object ID