rugged 1.6.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +138 -56
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -6
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +24 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +113 -96
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +34 -8
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +6 -10
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -238
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -1,8 +1,6 @@
|
|
1
1
|
# util: a shared library for common utility functions for libgit2 projects
|
2
2
|
|
3
3
|
add_library(util OBJECT)
|
4
|
-
set_target_properties(util PROPERTIES C_STANDARD 90)
|
5
|
-
set_target_properties(util PROPERTIES C_EXTENSIONS OFF)
|
6
4
|
|
7
5
|
configure_file(git2_features.h.in git2_features.h)
|
8
6
|
|
@@ -36,7 +34,7 @@ if(USE_SHA1 STREQUAL "CollisionDetection")
|
|
36
34
|
target_compile_definitions(util PRIVATE SHA1DC_NO_STANDARD_INCLUDES=1)
|
37
35
|
target_compile_definitions(util PRIVATE SHA1DC_CUSTOM_INCLUDE_SHA1_C=\"git2_util.h\")
|
38
36
|
target_compile_definitions(util PRIVATE SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"git2_util.h\")
|
39
|
-
elseif(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA1 STREQUAL "OpenSSL-Dynamic")
|
37
|
+
elseif(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA1 STREQUAL "OpenSSL-Dynamic" OR USE_SHA1 STREQUAL "OpenSSL-FIPS")
|
40
38
|
add_definitions(-DOPENSSL_API_COMPAT=0x10100000L)
|
41
39
|
file(GLOB UTIL_SRC_SHA1 hash/openssl.*)
|
42
40
|
elseif(USE_SHA1 STREQUAL "CommonCrypto")
|
@@ -51,9 +49,9 @@ endif()
|
|
51
49
|
|
52
50
|
list(SORT UTIL_SRC_SHA1)
|
53
51
|
|
54
|
-
if(USE_SHA256 STREQUAL "
|
52
|
+
if(USE_SHA256 STREQUAL "builtin")
|
55
53
|
file(GLOB UTIL_SRC_SHA256 hash/builtin.* hash/rfc6234/*)
|
56
|
-
elseif(USE_SHA256 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL-Dynamic")
|
54
|
+
elseif(USE_SHA256 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL-Dynamic" OR USE_SHA256 STREQUAL "OpenSSL-FIPS")
|
57
55
|
add_definitions(-DOPENSSL_API_COMPAT=0x10100000L)
|
58
56
|
file(GLOB UTIL_SRC_SHA256 hash/openssl.*)
|
59
57
|
elseif(USE_SHA256 STREQUAL "CommonCrypto")
|
@@ -63,7 +61,7 @@ elseif(USE_SHA256 STREQUAL "mbedTLS")
|
|
63
61
|
elseif(USE_SHA256 STREQUAL "Win32")
|
64
62
|
file(GLOB UTIL_SRC_SHA256 hash/win32.*)
|
65
63
|
else()
|
66
|
-
message(FATAL_ERROR "
|
64
|
+
message(FATAL_ERROR "asked for unknown SHA256 backend: ${USE_SHA256}")
|
67
65
|
endif()
|
68
66
|
|
69
67
|
list(SORT UTIL_SRC_SHA256)
|
@@ -8,27 +8,89 @@
|
|
8
8
|
#include "alloc.h"
|
9
9
|
#include "runtime.h"
|
10
10
|
|
11
|
-
#include "allocators/failalloc.h"
|
12
11
|
#include "allocators/stdalloc.h"
|
12
|
+
#include "allocators/debugalloc.h"
|
13
|
+
#include "allocators/failalloc.h"
|
13
14
|
#include "allocators/win32_leakcheck.h"
|
14
15
|
|
15
16
|
/* Fail any allocation until git_libgit2_init is called. */
|
16
17
|
git_allocator git__allocator = {
|
17
18
|
git_failalloc_malloc,
|
18
|
-
git_failalloc_calloc,
|
19
|
-
git_failalloc_strdup,
|
20
|
-
git_failalloc_strndup,
|
21
|
-
git_failalloc_substrdup,
|
22
19
|
git_failalloc_realloc,
|
23
|
-
git_failalloc_reallocarray,
|
24
|
-
git_failalloc_mallocarray,
|
25
20
|
git_failalloc_free
|
26
21
|
};
|
27
22
|
|
23
|
+
void *git__calloc(size_t nelem, size_t elsize)
|
24
|
+
{
|
25
|
+
size_t newsize;
|
26
|
+
void *ptr;
|
27
|
+
|
28
|
+
if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
|
29
|
+
return NULL;
|
30
|
+
|
31
|
+
if ((ptr = git__malloc(newsize)))
|
32
|
+
memset(ptr, 0, newsize);
|
33
|
+
|
34
|
+
return ptr;
|
35
|
+
}
|
36
|
+
|
37
|
+
void *git__reallocarray(void *ptr, size_t nelem, size_t elsize)
|
38
|
+
{
|
39
|
+
size_t newsize;
|
40
|
+
|
41
|
+
if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
|
42
|
+
return NULL;
|
43
|
+
|
44
|
+
return git__realloc(ptr, newsize);
|
45
|
+
}
|
46
|
+
|
47
|
+
void *git__mallocarray(size_t nelem, size_t elsize)
|
48
|
+
{
|
49
|
+
return git__reallocarray(NULL, nelem, elsize);
|
50
|
+
}
|
51
|
+
|
52
|
+
char *git__strdup(const char *str)
|
53
|
+
{
|
54
|
+
size_t len = strlen(str) + 1;
|
55
|
+
void *ptr = git__malloc(len);
|
56
|
+
|
57
|
+
if (ptr)
|
58
|
+
memcpy(ptr, str, len);
|
59
|
+
|
60
|
+
return ptr;
|
61
|
+
}
|
62
|
+
|
63
|
+
char *git__strndup(const char *str, size_t n)
|
64
|
+
{
|
65
|
+
size_t len = p_strnlen(str, n);
|
66
|
+
char *ptr = git__malloc(len + 1);
|
67
|
+
|
68
|
+
if (ptr) {
|
69
|
+
memcpy(ptr, str, len);
|
70
|
+
ptr[len] = '\0';
|
71
|
+
}
|
72
|
+
|
73
|
+
return ptr;
|
74
|
+
}
|
75
|
+
|
76
|
+
char *git__substrdup(const char *str, size_t n)
|
77
|
+
{
|
78
|
+
char *ptr = git__malloc(n + 1);
|
79
|
+
|
80
|
+
if (ptr) {
|
81
|
+
memcpy(ptr, str, n);
|
82
|
+
ptr[n] = '\0';
|
83
|
+
}
|
84
|
+
|
85
|
+
return ptr;
|
86
|
+
}
|
87
|
+
|
28
88
|
static int setup_default_allocator(void)
|
29
89
|
{
|
30
90
|
#if defined(GIT_WIN32_LEAKCHECK)
|
31
91
|
return git_win32_leakcheck_init_allocator(&git__allocator);
|
92
|
+
#elif defined(GIT_DEBUG_STRICT_ALLOC)
|
93
|
+
return git_debugalloc_init_allocator(&git__allocator);
|
32
94
|
#else
|
33
95
|
return git_stdalloc_init_allocator(&git__allocator);
|
34
96
|
#endif
|
@@ -10,17 +10,42 @@
|
|
10
10
|
|
11
11
|
#include "git2/sys/alloc.h"
|
12
12
|
|
13
|
+
#include "git2_util.h"
|
14
|
+
|
13
15
|
extern git_allocator git__allocator;
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
GIT_INLINE(void *) git__malloc(size_t len)
|
18
|
+
{
|
19
|
+
void *p = git__allocator.gmalloc(len, __FILE__, __LINE__);
|
20
|
+
|
21
|
+
if (!p)
|
22
|
+
git_error_set_oom();
|
23
|
+
|
24
|
+
return p;
|
25
|
+
}
|
26
|
+
|
27
|
+
GIT_INLINE(void *) git__realloc(void *ptr, size_t size)
|
28
|
+
{
|
29
|
+
void *p = git__allocator.grealloc(ptr, size, __FILE__, __LINE__);
|
30
|
+
|
31
|
+
if (!p)
|
32
|
+
git_error_set_oom();
|
33
|
+
|
34
|
+
return p;
|
35
|
+
}
|
36
|
+
|
37
|
+
GIT_INLINE(void) git__free(void *ptr)
|
38
|
+
{
|
39
|
+
git__allocator.gfree(ptr);
|
40
|
+
}
|
41
|
+
|
42
|
+
extern void *git__calloc(size_t nelem, size_t elsize);
|
43
|
+
extern void *git__mallocarray(size_t nelem, size_t elsize);
|
44
|
+
extern void *git__reallocarray(void *ptr, size_t nelem, size_t elsize);
|
45
|
+
|
46
|
+
extern char *git__strdup(const char *str);
|
47
|
+
extern char *git__strndup(const char *str, size_t n);
|
48
|
+
extern char *git__substrdup(const char *str, size_t n);
|
24
49
|
|
25
50
|
/**
|
26
51
|
* This function is being called by our global setup routines to
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#include "debugalloc.h"
|
9
|
+
|
10
|
+
static void *debugalloc__malloc(size_t len, const char *file, int line)
|
11
|
+
{
|
12
|
+
unsigned char *ptr;
|
13
|
+
size_t total = len + sizeof(size_t);
|
14
|
+
|
15
|
+
GIT_UNUSED(file);
|
16
|
+
GIT_UNUSED(line);
|
17
|
+
|
18
|
+
if (!len || (ptr = malloc(total)) == NULL)
|
19
|
+
return NULL;
|
20
|
+
|
21
|
+
memcpy(ptr, &len, sizeof(size_t));
|
22
|
+
return ptr + sizeof(size_t);
|
23
|
+
}
|
24
|
+
|
25
|
+
static void *debugalloc__realloc(void *_ptr, size_t len, const char *file, int line)
|
26
|
+
{
|
27
|
+
unsigned char *ptr = _ptr, *newptr;
|
28
|
+
size_t original_len;
|
29
|
+
size_t total = len + sizeof(size_t);
|
30
|
+
|
31
|
+
GIT_UNUSED(file);
|
32
|
+
GIT_UNUSED(line);
|
33
|
+
|
34
|
+
if (!len && !ptr)
|
35
|
+
return NULL;
|
36
|
+
|
37
|
+
if (!len) {
|
38
|
+
free(ptr - sizeof(size_t));
|
39
|
+
return NULL;
|
40
|
+
}
|
41
|
+
|
42
|
+
if ((newptr = malloc(total)) == NULL)
|
43
|
+
return NULL;
|
44
|
+
|
45
|
+
if (ptr) {
|
46
|
+
memcpy(&original_len, ptr - sizeof(size_t), sizeof(size_t));
|
47
|
+
memcpy(newptr + sizeof(size_t), ptr, min(len, original_len));
|
48
|
+
|
49
|
+
memset(ptr - sizeof(size_t), 0xfd, original_len + sizeof(size_t));
|
50
|
+
free(ptr - sizeof(size_t));
|
51
|
+
}
|
52
|
+
|
53
|
+
memcpy(newptr, &len, sizeof(size_t));
|
54
|
+
return newptr + sizeof(size_t);
|
55
|
+
}
|
56
|
+
|
57
|
+
static void debugalloc__free(void *_ptr)
|
58
|
+
{
|
59
|
+
unsigned char *ptr = _ptr;
|
60
|
+
|
61
|
+
if (!ptr)
|
62
|
+
return;
|
63
|
+
|
64
|
+
free(ptr - sizeof(size_t));
|
65
|
+
}
|
66
|
+
|
67
|
+
int git_debugalloc_init_allocator(git_allocator *allocator)
|
68
|
+
{
|
69
|
+
allocator->gmalloc = debugalloc__malloc;
|
70
|
+
allocator->grealloc = debugalloc__realloc;
|
71
|
+
allocator->gfree = debugalloc__free;
|
72
|
+
return 0;
|
73
|
+
}
|
@@ -5,16 +5,13 @@
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
6
6
|
*/
|
7
7
|
|
8
|
-
#ifndef
|
9
|
-
#define
|
10
|
-
|
11
|
-
#define PROGRAM_NAME "git2"
|
8
|
+
#ifndef INCLUDE_allocators_debugalloc_h__
|
9
|
+
#define INCLUDE_allocators_debugalloc_h__
|
12
10
|
|
13
11
|
#include "git2_util.h"
|
14
12
|
|
15
|
-
#include "
|
16
|
-
|
17
|
-
|
18
|
-
#include "sighandler.h"
|
13
|
+
#include "alloc.h"
|
14
|
+
|
15
|
+
int git_debugalloc_init_allocator(git_allocator *allocator);
|
19
16
|
|
20
|
-
#endif
|
17
|
+
#endif
|
@@ -16,45 +16,6 @@ void *git_failalloc_malloc(size_t len, const char *file, int line)
|
|
16
16
|
return NULL;
|
17
17
|
}
|
18
18
|
|
19
|
-
void *git_failalloc_calloc(size_t nelem, size_t elsize, const char *file, int line)
|
20
|
-
{
|
21
|
-
GIT_UNUSED(nelem);
|
22
|
-
GIT_UNUSED(elsize);
|
23
|
-
GIT_UNUSED(file);
|
24
|
-
GIT_UNUSED(line);
|
25
|
-
|
26
|
-
return NULL;
|
27
|
-
}
|
28
|
-
|
29
|
-
char *git_failalloc_strdup(const char *str, const char *file, int line)
|
30
|
-
{
|
31
|
-
GIT_UNUSED(str);
|
32
|
-
GIT_UNUSED(file);
|
33
|
-
GIT_UNUSED(line);
|
34
|
-
|
35
|
-
return NULL;
|
36
|
-
}
|
37
|
-
|
38
|
-
char *git_failalloc_strndup(const char *str, size_t n, const char *file, int line)
|
39
|
-
{
|
40
|
-
GIT_UNUSED(str);
|
41
|
-
GIT_UNUSED(n);
|
42
|
-
GIT_UNUSED(file);
|
43
|
-
GIT_UNUSED(line);
|
44
|
-
|
45
|
-
return NULL;
|
46
|
-
}
|
47
|
-
|
48
|
-
char *git_failalloc_substrdup(const char *start, size_t n, const char *file, int line)
|
49
|
-
{
|
50
|
-
GIT_UNUSED(start);
|
51
|
-
GIT_UNUSED(n);
|
52
|
-
GIT_UNUSED(file);
|
53
|
-
GIT_UNUSED(line);
|
54
|
-
|
55
|
-
return NULL;
|
56
|
-
}
|
57
|
-
|
58
19
|
void *git_failalloc_realloc(void *ptr, size_t size, const char *file, int line)
|
59
20
|
{
|
60
21
|
GIT_UNUSED(ptr);
|
@@ -65,27 +26,6 @@ void *git_failalloc_realloc(void *ptr, size_t size, const char *file, int line)
|
|
65
26
|
return NULL;
|
66
27
|
}
|
67
28
|
|
68
|
-
void *git_failalloc_reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line)
|
69
|
-
{
|
70
|
-
GIT_UNUSED(ptr);
|
71
|
-
GIT_UNUSED(nelem);
|
72
|
-
GIT_UNUSED(elsize);
|
73
|
-
GIT_UNUSED(file);
|
74
|
-
GIT_UNUSED(line);
|
75
|
-
|
76
|
-
return NULL;
|
77
|
-
}
|
78
|
-
|
79
|
-
void *git_failalloc_mallocarray(size_t nelem, size_t elsize, const char *file, int line)
|
80
|
-
{
|
81
|
-
GIT_UNUSED(nelem);
|
82
|
-
GIT_UNUSED(elsize);
|
83
|
-
GIT_UNUSED(file);
|
84
|
-
GIT_UNUSED(line);
|
85
|
-
|
86
|
-
return NULL;
|
87
|
-
}
|
88
|
-
|
89
29
|
void git_failalloc_free(void *ptr)
|
90
30
|
{
|
91
31
|
GIT_UNUSED(ptr);
|
@@ -11,13 +11,7 @@
|
|
11
11
|
#include "git2_util.h"
|
12
12
|
|
13
13
|
extern void *git_failalloc_malloc(size_t len, const char *file, int line);
|
14
|
-
extern void *git_failalloc_calloc(size_t nelem, size_t elsize, const char *file, int line);
|
15
|
-
extern char *git_failalloc_strdup(const char *str, const char *file, int line);
|
16
|
-
extern char *git_failalloc_strndup(const char *str, size_t n, const char *file, int line);
|
17
|
-
extern char *git_failalloc_substrdup(const char *start, size_t n, const char *file, int line);
|
18
14
|
extern void *git_failalloc_realloc(void *ptr, size_t size, const char *file, int line);
|
19
|
-
extern void *git_failalloc_reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line);
|
20
|
-
extern void *git_failalloc_mallocarray(size_t nelem, size_t elsize, const char *file, int line);
|
21
15
|
extern void git_failalloc_free(void *ptr);
|
22
16
|
|
23
17
|
#endif
|
@@ -9,125 +9,18 @@
|
|
9
9
|
|
10
10
|
static void *stdalloc__malloc(size_t len, const char *file, int line)
|
11
11
|
{
|
12
|
-
void *ptr;
|
13
|
-
|
14
|
-
GIT_UNUSED(file);
|
15
|
-
GIT_UNUSED(line);
|
16
|
-
|
17
|
-
#ifdef GIT_DEBUG_STRICT_ALLOC
|
18
|
-
if (!len)
|
19
|
-
return NULL;
|
20
|
-
#endif
|
21
|
-
|
22
|
-
ptr = malloc(len);
|
23
|
-
|
24
|
-
if (!ptr)
|
25
|
-
git_error_set_oom();
|
26
|
-
|
27
|
-
return ptr;
|
28
|
-
}
|
29
|
-
|
30
|
-
static void *stdalloc__calloc(size_t nelem, size_t elsize, const char *file, int line)
|
31
|
-
{
|
32
|
-
void *ptr;
|
33
|
-
|
34
|
-
GIT_UNUSED(file);
|
35
|
-
GIT_UNUSED(line);
|
36
|
-
|
37
|
-
#ifdef GIT_DEBUG_STRICT_ALLOC
|
38
|
-
if (!elsize || !nelem)
|
39
|
-
return NULL;
|
40
|
-
#endif
|
41
|
-
|
42
|
-
ptr = calloc(nelem, elsize);
|
43
|
-
|
44
|
-
if (!ptr)
|
45
|
-
git_error_set_oom();
|
46
|
-
|
47
|
-
return ptr;
|
48
|
-
}
|
49
|
-
|
50
|
-
static char *stdalloc__strdup(const char *str, const char *file, int line)
|
51
|
-
{
|
52
|
-
char *ptr;
|
53
|
-
|
54
12
|
GIT_UNUSED(file);
|
55
13
|
GIT_UNUSED(line);
|
56
14
|
|
57
|
-
|
58
|
-
|
59
|
-
if (!ptr)
|
60
|
-
git_error_set_oom();
|
61
|
-
|
62
|
-
return ptr;
|
63
|
-
}
|
64
|
-
|
65
|
-
static char *stdalloc__strndup(const char *str, size_t n, const char *file, int line)
|
66
|
-
{
|
67
|
-
size_t length = 0, alloclength;
|
68
|
-
char *ptr;
|
69
|
-
|
70
|
-
length = p_strnlen(str, n);
|
71
|
-
|
72
|
-
if (GIT_ADD_SIZET_OVERFLOW(&alloclength, length, 1) ||
|
73
|
-
!(ptr = stdalloc__malloc(alloclength, file, line)))
|
74
|
-
return NULL;
|
75
|
-
|
76
|
-
if (length)
|
77
|
-
memcpy(ptr, str, length);
|
78
|
-
|
79
|
-
ptr[length] = '\0';
|
80
|
-
|
81
|
-
return ptr;
|
82
|
-
}
|
83
|
-
|
84
|
-
static char *stdalloc__substrdup(const char *start, size_t n, const char *file, int line)
|
85
|
-
{
|
86
|
-
char *ptr;
|
87
|
-
size_t alloclen;
|
88
|
-
|
89
|
-
if (GIT_ADD_SIZET_OVERFLOW(&alloclen, n, 1) ||
|
90
|
-
!(ptr = stdalloc__malloc(alloclen, file, line)))
|
91
|
-
return NULL;
|
92
|
-
|
93
|
-
memcpy(ptr, start, n);
|
94
|
-
ptr[n] = '\0';
|
95
|
-
return ptr;
|
15
|
+
return malloc(len);
|
96
16
|
}
|
97
17
|
|
98
18
|
static void *stdalloc__realloc(void *ptr, size_t size, const char *file, int line)
|
99
19
|
{
|
100
|
-
void *new_ptr;
|
101
|
-
|
102
20
|
GIT_UNUSED(file);
|
103
21
|
GIT_UNUSED(line);
|
104
22
|
|
105
|
-
|
106
|
-
if (!size)
|
107
|
-
return NULL;
|
108
|
-
#endif
|
109
|
-
|
110
|
-
new_ptr = realloc(ptr, size);
|
111
|
-
|
112
|
-
if (!new_ptr)
|
113
|
-
git_error_set_oom();
|
114
|
-
|
115
|
-
return new_ptr;
|
116
|
-
}
|
117
|
-
|
118
|
-
static void *stdalloc__reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line)
|
119
|
-
{
|
120
|
-
size_t newsize;
|
121
|
-
|
122
|
-
if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
|
123
|
-
return NULL;
|
124
|
-
|
125
|
-
return stdalloc__realloc(ptr, newsize, file, line);
|
126
|
-
}
|
127
|
-
|
128
|
-
static void *stdalloc__mallocarray(size_t nelem, size_t elsize, const char *file, int line)
|
129
|
-
{
|
130
|
-
return stdalloc__reallocarray(NULL, nelem, elsize, file, line);
|
23
|
+
return realloc(ptr, size);
|
131
24
|
}
|
132
25
|
|
133
26
|
static void stdalloc__free(void *ptr)
|
@@ -138,13 +31,7 @@ static void stdalloc__free(void *ptr)
|
|
138
31
|
int git_stdalloc_init_allocator(git_allocator *allocator)
|
139
32
|
{
|
140
33
|
allocator->gmalloc = stdalloc__malloc;
|
141
|
-
allocator->gcalloc = stdalloc__calloc;
|
142
|
-
allocator->gstrdup = stdalloc__strdup;
|
143
|
-
allocator->gstrndup = stdalloc__strndup;
|
144
|
-
allocator->gsubstrdup = stdalloc__substrdup;
|
145
34
|
allocator->grealloc = stdalloc__realloc;
|
146
|
-
allocator->greallocarray = stdalloc__reallocarray;
|
147
|
-
allocator->gmallocarray = stdalloc__mallocarray;
|
148
35
|
allocator->gfree = stdalloc__free;
|
149
36
|
return 0;
|
150
37
|
}
|
@@ -18,53 +18,6 @@ static void *leakcheck_malloc(size_t len, const char *file, int line)
|
|
18
18
|
return ptr;
|
19
19
|
}
|
20
20
|
|
21
|
-
static void *leakcheck_calloc(size_t nelem, size_t elsize, const char *file, int line)
|
22
|
-
{
|
23
|
-
void *ptr = _calloc_dbg(nelem, elsize, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
|
24
|
-
if (!ptr) git_error_set_oom();
|
25
|
-
return ptr;
|
26
|
-
}
|
27
|
-
|
28
|
-
static char *leakcheck_strdup(const char *str, const char *file, int line)
|
29
|
-
{
|
30
|
-
char *ptr = _strdup_dbg(str, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
|
31
|
-
if (!ptr) git_error_set_oom();
|
32
|
-
return ptr;
|
33
|
-
}
|
34
|
-
|
35
|
-
static char *leakcheck_strndup(const char *str, size_t n, const char *file, int line)
|
36
|
-
{
|
37
|
-
size_t length = 0, alloclength;
|
38
|
-
char *ptr;
|
39
|
-
|
40
|
-
length = p_strnlen(str, n);
|
41
|
-
|
42
|
-
if (GIT_ADD_SIZET_OVERFLOW(&alloclength, length, 1) ||
|
43
|
-
!(ptr = leakcheck_malloc(alloclength, file, line)))
|
44
|
-
return NULL;
|
45
|
-
|
46
|
-
if (length)
|
47
|
-
memcpy(ptr, str, length);
|
48
|
-
|
49
|
-
ptr[length] = '\0';
|
50
|
-
|
51
|
-
return ptr;
|
52
|
-
}
|
53
|
-
|
54
|
-
static char *leakcheck_substrdup(const char *start, size_t n, const char *file, int line)
|
55
|
-
{
|
56
|
-
char *ptr;
|
57
|
-
size_t alloclen;
|
58
|
-
|
59
|
-
if (GIT_ADD_SIZET_OVERFLOW(&alloclen, n, 1) ||
|
60
|
-
!(ptr = leakcheck_malloc(alloclen, file, line)))
|
61
|
-
return NULL;
|
62
|
-
|
63
|
-
memcpy(ptr, start, n);
|
64
|
-
ptr[n] = '\0';
|
65
|
-
return ptr;
|
66
|
-
}
|
67
|
-
|
68
21
|
static void *leakcheck_realloc(void *ptr, size_t size, const char *file, int line)
|
69
22
|
{
|
70
23
|
void *new_ptr = _realloc_dbg(ptr, size, _NORMAL_BLOCK, git_win32_leakcheck_stacktrace(1,file), line);
|
@@ -72,21 +25,6 @@ static void *leakcheck_realloc(void *ptr, size_t size, const char *file, int lin
|
|
72
25
|
return new_ptr;
|
73
26
|
}
|
74
27
|
|
75
|
-
static void *leakcheck_reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line)
|
76
|
-
{
|
77
|
-
size_t newsize;
|
78
|
-
|
79
|
-
if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
|
80
|
-
return NULL;
|
81
|
-
|
82
|
-
return leakcheck_realloc(ptr, newsize, file, line);
|
83
|
-
}
|
84
|
-
|
85
|
-
static void *leakcheck_mallocarray(size_t nelem, size_t elsize, const char *file, int line)
|
86
|
-
{
|
87
|
-
return leakcheck_reallocarray(NULL, nelem, elsize, file, line);
|
88
|
-
}
|
89
|
-
|
90
28
|
static void leakcheck_free(void *ptr)
|
91
29
|
{
|
92
30
|
free(ptr);
|
@@ -95,13 +33,7 @@ static void leakcheck_free(void *ptr)
|
|
95
33
|
int git_win32_leakcheck_init_allocator(git_allocator *allocator)
|
96
34
|
{
|
97
35
|
allocator->gmalloc = leakcheck_malloc;
|
98
|
-
allocator->gcalloc = leakcheck_calloc;
|
99
|
-
allocator->gstrdup = leakcheck_strdup;
|
100
|
-
allocator->gstrndup = leakcheck_strndup;
|
101
|
-
allocator->gsubstrdup = leakcheck_substrdup;
|
102
36
|
allocator->grealloc = leakcheck_realloc;
|
103
|
-
allocator->greallocarray = leakcheck_reallocarray;
|
104
|
-
allocator->gmallocarray = leakcheck_mallocarray;
|
105
37
|
allocator->gfree = leakcheck_free;
|
106
38
|
return 0;
|
107
39
|
}
|
@@ -33,44 +33,48 @@
|
|
33
33
|
#define git_array_init_to_size(a, desired) \
|
34
34
|
do { (a).size = 0; (a).asize = desired; (a).ptr = git__calloc(desired, sizeof(*(a).ptr)); } while (0)
|
35
35
|
|
36
|
+
#define git_array_dispose(a) \
|
37
|
+
do { git__free((a).ptr); } while (0)
|
38
|
+
|
36
39
|
#define git_array_clear(a) \
|
37
40
|
do { git__free((a).ptr); git_array_init(a); } while (0)
|
38
41
|
|
39
42
|
#define GIT_ERROR_CHECK_ARRAY(a) GIT_ERROR_CHECK_ALLOC((a).ptr)
|
40
43
|
|
41
|
-
|
42
|
-
typedef git_array_t(char) git_array_generic_t;
|
43
|
-
|
44
|
-
/* use a generic array for growth, return 0 on success */
|
45
|
-
GIT_INLINE(int) git_array_grow(void *_a, size_t item_size)
|
44
|
+
GIT_INLINE(void *) git_array__alloc(void *arr, size_t *size, size_t *asize, size_t item_size)
|
46
45
|
{
|
47
|
-
volatile git_array_generic_t *a = _a;
|
48
46
|
size_t new_size;
|
49
|
-
|
47
|
+
void *new_array;
|
48
|
+
|
49
|
+
if (*size < *asize)
|
50
|
+
return arr;
|
50
51
|
|
51
|
-
if (
|
52
|
+
if (*size < 8) {
|
52
53
|
new_size = 8;
|
53
54
|
} else {
|
54
|
-
if (GIT_MULTIPLY_SIZET_OVERFLOW(&new_size,
|
55
|
+
if (GIT_MULTIPLY_SIZET_OVERFLOW(&new_size, *asize, 3))
|
55
56
|
goto on_oom;
|
57
|
+
|
56
58
|
new_size /= 2;
|
57
59
|
}
|
58
60
|
|
59
|
-
if ((new_array = git__reallocarray(
|
61
|
+
if ((new_array = git__reallocarray(arr, new_size, item_size)) == NULL)
|
60
62
|
goto on_oom;
|
61
63
|
|
62
|
-
|
63
|
-
|
64
|
-
return
|
64
|
+
*asize = new_size;
|
65
|
+
|
66
|
+
return new_array;
|
65
67
|
|
66
68
|
on_oom:
|
67
|
-
|
68
|
-
|
69
|
+
git__free(arr);
|
70
|
+
*size = 0;
|
71
|
+
*asize = 0;
|
72
|
+
return NULL;
|
69
73
|
}
|
70
74
|
|
71
75
|
#define git_array_alloc(a) \
|
72
|
-
(((a).size < (a).asize ||
|
73
|
-
|
76
|
+
(((a).size < (a).asize || \
|
77
|
+
((a).ptr = git_array__alloc((a).ptr, &(a).size, &(a).asize, sizeof(*(a).ptr))) != NULL) ? &(a).ptr[(a).size++] : (void *)NULL)
|
74
78
|
|
75
79
|
#define git_array_last(a) ((a).size ? &(a).ptr[(a).size - 1] : (void *)NULL)
|
76
80
|
|
@@ -85,12 +89,14 @@ on_oom:
|
|
85
89
|
#define git_array_foreach(a, i, element) \
|
86
90
|
for ((i) = 0; (i) < (a).size && ((element) = &(a).ptr[(i)]); (i)++)
|
87
91
|
|
92
|
+
typedef int (*git_array_compare_cb)(const void *, const void *);
|
93
|
+
|
88
94
|
GIT_INLINE(int) git_array__search(
|
89
95
|
size_t *out,
|
90
96
|
void *array_ptr,
|
91
97
|
size_t item_size,
|
92
98
|
size_t array_len,
|
93
|
-
|
99
|
+
git_array_compare_cb compare,
|
94
100
|
const void *key)
|
95
101
|
{
|
96
102
|
size_t lim;
|
@@ -43,8 +43,12 @@
|
|
43
43
|
__typeof__(x) _unused __attribute__((unused)); \
|
44
44
|
_unused = (x); \
|
45
45
|
} while (0)
|
46
|
+
# define GIT_UNUSED_ARG __attribute__((unused))
|
47
|
+
# define GIT_UNUSED_FUNCTION __attribute__((unused))
|
46
48
|
#else
|
47
49
|
# define GIT_UNUSED(x) ((void)(x))
|
50
|
+
# define GIT_UNUSED_ARG
|
51
|
+
# define GIT_UNUSED_FUNCTION
|
48
52
|
#endif
|
49
53
|
|
50
54
|
/* Define the printf format specifier to use for size_t output */
|