Commits
- Commit:
ae25a666dd4099105786ef32f1e6ebaf92abe64d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
add some helper functions to compute hashes
This adds a set of functions to abstract over SHA1Init, SHA1Update,
SHA1Final, their respective SHA256 variants and how to compare digests.
Replace all the SHA1*() usage with the new APIs. It's a preparatory
step for sha256 handling.
ok stsp@
- Commit:
53bf0b541977b66862040d4b633fb6b5d3a3c6c8
- From:
- Omar Polo <op@omarpolo.com>
- Date:
rename lib/sha1.c to lib/hash.c
It will soon grow functions to deal with sha256 too. stsp@ agrees.
- Commit:
5822e79e39a8777984e08b5d89a8c55d6aa0356d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
include sha2.h too where sha1.h is included
In preparation for wide sha256 support; stsp@ agrees. Change done
mechanically with
find . -iname \*.[cy] -exec sam {} +
X ,x/<sha1\.h>/i/\n#include <sha2.h>
- Commit:
f990756a3987ba6410baf611d561e9b8f285f047
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use SHA1_DIGEST_LENGTH instead of sizeof(id)
ok stsp
- Commit:
24b7de1c04072bf25db2df8acbf93a7ba7bbabfd
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
avoid copying reused deltas to delta cache file; copy from pack file instead
ok op@
- Commit:
e62fc5205c7c439d072229d8be922ea30e8d8024
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add missing free() of delta buffers in several error paths
- Commit:
e5792992e5d6e73bb379bbfcd69ae2e66afe359d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
change add_delta to take an off_t instead of size_t.
add_delta already calls got_delta_open casting the size_t to off_t, and
all the add_delta callers pass an off_t anyway; fixes an implicit off_t
truncation.
ok stsp@
- Commit:
ad4cc36168576274131539e87b9007ef9b3c3725
- From:
- Omar Polo <op@omarpolo.com>
- Date:
convert got_pack' filesize to off_t; ok stsp@
- Commit:
1c28a36116110db5de40e6edf09887651f3ca37b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
check size before calling mmap(2)
It's only a preparatory step, as checking whether a size_t is less than
SIZE_MAX is moot. In a follow-up commit, however, the `filesize' field
of the struct got_pack will become off_t and these checks will kick in.
This also makes consistent how we guard mmap(2) against empty files.
ok and improvements stsp@
- Commit:
82031ac84c8cf40b9d7373d07cf94423b8a7bf22
- From:
- Omar Polo <op@omarpolo.com>
- Date:
add missing `goto done;' on error path; ok stsp@
- Commit:
e082ed67081c3f126a8c83d3ea8b5b49bb576a90
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
fix off_t type mismatch
off_t is a signed type and depending on the platform, it can be
"long" or "long long", so cast to long long for printf().
- Commit:
24d916d21f287fd70d7ba70f077a8d84c3fdee7c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
change got_pack_parse_offset_delta tslen argument to size_t
The tslen argument is always in the (1..9) range so `int' is technically
fine (even int8_t would be!) but all the callers are passing a size_t,
so change the type accordingly.
ok stsp@
- Commit:
74ef8aae7e2bc5e35fe53a09877d13f1bc5ccaf5
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
close parent's end of imsg pipe before waiting for a child process to exit
Prevents a dead-lock in 'tog log' where tog wants to exit (e.g. because
the user pressed Ctrl-C) while a got-read-pack child process wants to
send more commits.
Closing the parent's pipe descriptor makes writes to the pipe fail in
the child process. The child then unwinds via an ERR_EOF error and
exits, instead of forever polling its end of the pipe in order to
write more data.
ok jamsek
- Commit:
09ee8ded96c5163fc8b06a8bdba606db19b2974a
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
provide a more useful error if the size of a packed object won't fit in 64 bits
- Commit:
aabb25f81b1f8f68a03af422f9ae14ea5c3ae1fd
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
do not crash if no delta cache is present while parsing deltas
- Commit:
04aed1557bf2e67bfef8d3a991fd54526142c8a8
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
fix off_t type mismatches
off_t is a signed type and depending on the platform, it can be
"long" or "long long", so cast to long long for printf().
ok stsp
- Commit:
3d589bee0bbbe812bb91f3b0284fbf2596304132
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
allow start_pack_privsep_child() to be called from outside lib/object.c
- Commit:
571608344a37fb96f46850a1124415ab68b1a431
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
open temporary files needed for delta application in got_repo_open()
This prepares for callers of got_repo_open() that cannot afford to
open files in /tmp, such as gotwebd. In a follow-up change, we could
ask such callers to pass in the required amount of open temporary files.
One consequence is that got_repo_open() now requires the "cpath" pledge
promise. Add the "cpath" promise to affected callers and remove it once
the repository has been opened.
ok tracey
- Commit:
f18c433aae68e5537cf67eae05c0343e970307ad
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
avoid get_delta_chain_max_size() in dump_delta_chain_to_mem()
- Commit:
6395114c60289f3ac0f28c0fc4b5dfcef8690cdf
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
avoid get_delta_chain_max_size() in dump_delta_chain_to_file()
- Commit:
2d9e6abf243a0a1895786fa9002b28d69a0f6fea
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
store deltas in compressed form while packing, both in memory and cache file
This reduces memory and disk space consumption during packing.
with tweaks + memleak on error fix from op@
ok op@
- Commit:
d7b5a0e827bb38e5c8502f0ba8d7838fedaba19b
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
inline struct got_object_id in struct got_object_qid
Saves us from doing a malloc/free call for every item on the list.
ok op@
- Commit:
36751b1b2e8389b739a0f7aacf7d8e5371d898bf
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
remove needless header inclusion; lib/pack.c does not need got_opentemp.h
- Commit:
8934ea8b1b31166ea1f3f857e6f51f8dd6a999a2
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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@
- Commit:
67fd68496517d3103b130a1085efdd4591bd7416
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
reuse existing deltas when creating pack files
tested by thomas, naddy, and myself