15571 Commits

Author SHA1 Message Date
Edward Thomson
3353f78e8e Merge pull request #6931 from libgit2/ethomson/v1.8.3 v1.8.3 2024-10-26 20:03:57 +01:00
Edward Thomson
da3db63688 v1.8.3: update changelog and version numbers 2024-10-26 19:36:15 +01:00
Ludovic Courtès
a44f198f92 Apply suggestions from code review
Co-authored-by: Edward Thomson <ethomson@edwardthomson.com>
2024-10-26 19:29:23 +01:00
Ludovic Courtès
65a7ff0644 http: Initialize ‘on_status’ when using the http-parser backend.
Fixes a bug likely introduced in
d396819101 (in 1.8.1) whereby
‘proxy_settings.on_status’ would be left uninitialized when using the
‘http-parser’ backend, eventually leading to a segfault in
‘http_parser_execute’.  Valgrind would report use of the uninitialized
value like so:

   Conditional jump or move depends on uninitialised value(s)
      at 0x50CD533: http_parser_execute (http_parser.c:910)
      by 0x4928504: git_http_parser_execute (httpparser.c:82)
      by 0x4925C42: client_read_and_parse (httpclient.c:1178)
      by 0x4926F27: git_http_client_read_response (httpclient.c:1458)
      by 0x49255FE: http_stream_read (http.c:427)
      by 0x4929B90: git_smart__recv (smart.c:29)
      by 0x492C147: git_smart__store_refs (smart_protocol.c:58)
      by 0x4929F6C: git_smart__connect (smart.c:171)
      by 0x4904DCE: git_remote_connect_ext (remote.c:963)
      by 0x48A15D2: clone_into (clone.c:449)
      by 0x48A15D2: git__clone (clone.c:546)
      by 0x4010E9: main (libgit2-proxy.c:20)
2024-10-26 19:28:58 +01:00
Edward Thomson
635b3db432 Merge pull request #6828 from Murmele/maint/v1.8
Add assert
2024-06-13 15:22:55 +02:00
Martin Marmsoler
cc2082aa9b Add assert
Description: In an older version of libgit2 in git_object_lookup_prefix was a check that repo is valid, but now there is repo->oid_type in the git_object_lookup and must be checked as well
2024-06-11 23:12:41 +02:00
Edward Thomson
6c5520f334 Merge pull request #6811 from libgit2/ethomson/test_allocator
Introduce a stricter debugging allocator for testing
2024-05-16 11:34:07 +01:00
Edward Thomson
36f7e21ad7 Merge pull request #6817 from libgit2/ethomson/v1.8.1
libgit2 v1.8.1
v1.8.1
2024-05-16 10:58:48 +01:00
Edward Thomson
ae65dac85e v1.8.1: update changelog 2024-05-16 00:49:46 +01:00
Edward Thomson
834ec0f52f v1.8.1: update version numbers 2024-05-16 00:49:40 +01:00
Edward Thomson
eb00b48d91 fixup! alloc: introduce debug allocators 2024-05-15 22:38:33 +01:00
Edward Thomson
abedcfe71c tests: reset the allocator to the default
Instead of setting the allocator to stdalloc, just pass `NULL`, in case
we're running with the debug allocator.
2024-05-13 11:30:25 +01:00
Edward Thomson
afb2ef21bc util: don't return system allocated strings in realpath
realpath(3) _may_ allocate strings (if the second param is NULL) using
the system allocator. However, callers need an assurance that they can
free memory using git__free. If we made realpath do an allocation, then
make sure that we strdup it into our allocator's memory.

More importantly, avoid this behavior by always providing a buffer to
p_realpath invocations.
2024-05-13 11:30:25 +01:00
Edward Thomson
cfd6e0148b tests: use git__ allocator functions consistently 2024-05-13 11:30:25 +01:00
Edward Thomson
aaed67f786 alloc: introduce debug allocators
Instead of tweaking the `stdalloc` allocator when
`GIT_DEBUG_STRICT_ALLOC` is defined, actually create a debugging
allocator. This allows us to ensure that we are strict about things like
not expecting `malloc(0)` to do something useful, but we can also
introduce an excessively pedantic `realloc` implementation that _always_
creates a new buffer, throws away its original `ptr`, and overwrites the
data that's there with garbage. This may be helpful to identify places
that make assumptions about realloc.
2024-05-13 11:30:25 +01:00
Edward Thomson
c7af393a48 Merge pull request #6815 from libgit2/ethomson/signed_comparedness
tree: avoid mixed signedness comparison
2024-05-13 11:29:34 +01:00
Edward Thomson
f5c6b6ab14 Merge pull request #6814 from libgit2/ethomson/alloc
Update git_array allocator to obey strict aliasing rules
2024-05-13 11:29:25 +01:00
Edward Thomson
9a2afb7785 Merge pull request #6813 from libgit2/ethomson/opt_alloc
cli: include alloca on illumos / solaris / sunos
2024-05-13 11:29:04 +01:00
Edward Thomson
0e9eeec69a Merge pull request #6812 from libgit2/ethomson/unused-warnings
rand: avoid uninitialized loadavg warnings
2024-05-13 11:28:48 +01:00
Edward Thomson
5647f6ea7d Merge pull request #6810 from libgit2/ethomson/xdiff
xdiff: use proper free function
2024-05-13 11:28:35 +01:00
Edward Thomson
54218b5506 array: treat git_array ptrs as void *
Avoid sloppy aliasing in our (re-)allocation, which is undefined
behavior. This has been problematic before and was helped by `volatile`
(see b62a6a13b2) but that is not
technically correct, and some compilers / architectures do not
understand that `ptr` is changing due to its aliasing.

Just make `git_array_alloc` behave like `realloc`, taking a `void *` and
returning a `void *`.
2024-05-13 10:48:56 +01:00
Edward Thomson
bb3c31f327 xdiff: use proper free function 2024-05-13 10:44:06 +01:00
Edward Thomson
2fb07fd0e1 rand: avoid uninitialized loadavg warnings 2024-05-13 10:24:33 +01:00
Edward Thomson
99ba44608f tree: avoid mixed signedness comparison
Promote mode to `uint32_t` before comparing it to an `uint16_t` to avoid
mixed signed comparison warnings.
2024-05-13 10:22:44 +01:00
Edward Thomson
b1d6fd0858 cli: include alloca on illumos / solaris / sunos 2024-05-13 10:21:24 +01:00
Edward Thomson
5f796f881b Merge pull request #6808 from qaqland/fix-demo-for-each-ref
examples: fix memory leak in for-each-ref.c
2024-05-13 09:58:45 +01:00
Edward Thomson
26e0bd4ca3 Merge pull request #6806 from libgit2/ethomson/fetch_opts
remote: drop bitfields in git_remote_fetch_options
2024-05-13 09:55:39 +01:00
Edward Thomson
8791a26716 Merge pull request #6809 from csware/fix-revparse-at-at-end
Revparse: Correctly accept ref with '@' at the end
2024-05-13 09:55:04 +01:00
Sven Strickroth
60f219e80b Revparse: Correctly accept ref with '@' at the end
Signed-off-by: Sven Strickroth <email@cs-ware.de>
2024-05-08 17:36:18 +02:00
qaqland
322ea80231 examples: fix memory leak in for-each-ref.c 2024-05-08 11:08:26 +08:00
Edward Thomson
2d649ccd23 remote: drop bitfields in git_remote_fetch_options
In attempting to make a clever change that added fetch options as flags,
while keeping ABI and API compatibility, we screwed up. Bitfields in
structs are implementation-specific and are not necessarily ABI
compatible across compilers.

Make `update_fetchhead` a flags value which is weirdly named, but
that's a future problem. This removes the `report_unchanged` option from
API.
2024-05-06 15:46:21 +01:00
Edward Thomson
e5e233caed Merge pull request #6803 from libgit2/ethomson/sha256_transport
transport: support sha256 oids
2024-05-01 23:00:33 +01:00
Edward Thomson
2fd37e1bfe transport: support sha256 oids 2024-04-29 22:19:11 +01:00
Edward Thomson
6423ffbcd7 Merge pull request #6802 from libgit2/ethomson/cb_err
transport: provide a useful error message during cancellation
2024-04-29 12:02:08 +01:00
Edward Thomson
ffd881eb4a transport: provide a useful error message during cancellation
Since 3618a2a, `git_error_last` does not return NULL when there was no
error. Adapt to this when testing for a user cancelling a callback but
not setting an error message, testing for `klass` of `GIT_ERROR_NONE`.
2024-04-29 09:44:30 +01:00
Edward Thomson
85d42ea10e Merge pull request #6796 from ConradIrwin/no-oob
Bounds check for pack index read
2024-04-23 08:12:04 +01:00
Edward Thomson
b739acaa50 Merge pull request #6713 from sgallagher/llhttp 2024-04-23 08:05:54 +01:00
Edward Thomson
fb1797de63 Merge remote-tracking branch 'origin/main' into libgit2-httpparser 2024-04-23 00:09:50 +01:00
Edward Thomson
15a8d8763e ci: make fedora a nightly build 2024-04-23 00:09:20 +01:00
Edward Thomson
64808a9a8e ci: fixes for fedora
Use fedora's valgrind instead of trying to build our own; omit false
positive leaks in getaddrinfo;
2024-04-23 00:07:48 +01:00
Edward Thomson
98c4955390 http: remove legacy bundled http-parser
Users can still use the legacy Node.js http-parser library, but now we
bundle llhttp and prefer it.
2024-04-22 22:21:23 +01:00
Edward Thomson
d02b549dab http: make llhttp the default 2024-04-22 22:21:23 +01:00
Edward Thomson
d396819101 http: abstract http parsing out of httpclient
Avoid #ifdef's in httpclient.c, and move http parsing into its own file.
2024-04-22 22:21:23 +01:00
Edward Thomson
3599de9073 http: add llhttp as a bundled dependency
Include llhttp as a bundled dependency with the aim to use it as our
default http parser, removing the now-unmaintained Node.js http-parser.
2024-04-22 22:21:23 +01:00
Edward Thomson
06cafdf9d8 pack: upcast to size_t for bounds checking 2024-04-19 09:58:47 +01:00
Edward Thomson
93c94446cd Merge pull request #6792 from barracuda156/apple
process.c: fix environ for macOS
2024-04-19 09:46:25 +01:00
Edward Thomson
9ddf612a00 Merge pull request #6788 from libgit2/ethomson/user_agent
Allow more control over the user-agent
2024-04-18 21:02:59 +01:00
Edward Thomson
72d36a42b6 Merge pull request #6794 from stinb/windows-arm-build
cmake: remove workaround that isn't compatible with Windows on ARM
2024-04-18 21:01:40 +01:00
Conrad Irwin
6e8227ab38 Bounds check for pack index read
Fixes: https://github.com/libgit2/libgit2/issues/6795

Co-Authored-By: Bennet <bennetbo@gmx.de>
2024-04-15 09:51:14 -06:00
Jason Haslam
387d01c186 cmake: remove workaround that isn't compatible with Windows on ARM 2024-04-10 21:29:54 -06:00