Log

Author Commit Date CI Message
Carlos Martin Nieto a177756b 2016-03-18T13:00:27 win32: free thread-local data on thread exit
Edward Thomson de143efa 2016-03-16T14:12:14 Merge pull request #3690 from libgit2/cmn/pool-limit win32: choose the page size as our value for the page size
Carlos Martín Nieto 87c18197 2016-03-16T19:05:11 Split the page size from the mmap alignment While often similar, these are not the same on Windows. We want to use the page size on Windows for the pools, but for mmap we need to use the allocation granularity as the alignment. On the other platforms these values remain the same.
Carlos Martín Nieto 77394a27 2016-03-14T19:15:20 Merge pull request #3677 from pks-t/pks/coverity-fixes-round7 Coverity fixes round 7
Carlos Martín Nieto 4848dd32 2016-03-14T17:45:15 Merge pull request #3647 from pks-t/pks/coverity-fixes-round6 Coverity fixes round 6
Edward Thomson fa31ee68 2016-03-14T15:00:59 Merge pull request #3671 from libgit2/cmn/remove-mingw32 Remove CI support for mingw32
Carlos Martín Nieto ff5a3967 2016-03-14T15:29:30 Merge pull request #3683 from dbussink/dbussink/better-openssl-ciphers Setup better defaults for OpenSSL ciphers
Dirkjan Bussink c577efbb 2016-03-14T12:41:41 Use general cl_git_fail because the error is generic
Dirkjan Bussink 8f4cbc76 2016-03-14T12:41:12 Start error string with lower case character
Dirkjan Bussink fa72d6da 2016-03-14T12:02:00 Setup better defaults for OpenSSL ciphers This ensures that when using OpenSSL a safe default set of ciphers is selected. This is done so that the client communicates securely and we don't accidentally enable unsafe ciphers like RC4, or even worse some old export ciphers. Implements the first part of https://github.com/libgit2/libgit2/issues/3682
Carlos Martín Nieto b1093e62 2016-03-09T19:01:33 Remove CI support for mingw32 The tests have never run successfully and we do have successful builds of mingw-w64, so remove these CI builds which do not add value.
Carlos Martín Nieto 1ddada42 2016-03-11T16:31:32 Merge pull request #3636 from nerdishbynature/fix-non-modular-header-in-module Don't include inttypes if compiling for Mac/iOS
Patrick Steinhardt e850e98d 2016-03-10T16:42:55 blame: handle error when resoling HEAD in normalize_options When normalizing options we try to look up HEAD's OID. While this action may fail in malformed repositories we never check the return value of the function. Fix the issue by converting `normalize_options` to actually return an error and handle the error in `git_blame_file`.
Patrick Steinhardt 8a4a343a 2016-03-10T16:33:49 blame_git: handle error returned by `git_commit_parent`
Patrick Steinhardt b27ccad2 2016-03-10T16:11:51 refdb_fs: fail if refcache returns NULL pointer We usually check entries returned by `git_sortedcache_entry` for NULL pointers. As we have a write lock in `packed_write`, though, it really should not happen that the function returns NULL. Assert that ref is not NULL to silence a Coverity warning.
Patrick Steinhardt 13c371dc 2016-03-10T17:21:02 config_cache: check return value of `git_config__lookup_entry` Callers of `git_config__cvar` already handle the case where the function returns an error due to a failed configuration variable lookup, but we are actually swallowing errors when calling `git_config__lookup_entry` inside of the function. Fix this by returning early when `git_config__lookup_entry` returns an error. As we call `git_config__lookup_entry` with `no_errors == false` which leads us to call `get_entry` with `GET_NO_MISSING` we will not return early when the lookup fails due to a missing entry. Like this we are still able to set the default value of the cvar and exit successfully.
Patrick Steinhardt 6ff8a7c4 2016-03-10T17:05:30 filebuf: handle write error in `lock_file` When writing to a file with locking not check if writing the locked file actually succeeds. Fix the issue by returning error code and message when writing fails.
Patrick Steinhardt 836447e5 2016-03-10T16:52:09 config_file: handle error when trying to lock strmap Accessing the current values map is handled through the `refcounder_strmap_take` function, which first acquires a mutex before accessing its values. While this assures everybody is trying to access the values with the mutex only we do not check if the locking actually succeeds. Fix the issue by checking if acquiring the lock succeeds and returning `NULL` if we encounter an error. Adjust callers.
Patrick Steinhardt 2615d0d6 2016-03-02T01:50:34 coverity: report errors when uploading tarball Curl by default does not report errors by setting the error code. As the upload can fail through several conditions (e.g. the rate limit, leading to unauthorized access) we should indicate this information in Travis CI. To improve upon the behavior, use `--write-out=%{http_code}` to write out the HTTP code in addition to the received body and return an error if the code does not equal 201.
Patrick Steinhardt 1a8c11f4 2016-03-10T10:40:47 diff_tform: fix potential NULL pointer access When the user passes in a diff which has no repository associated we may call `git_config__get_int_force` with a NULL-pointer configuration. Even though `git_config__get_int_force` is designed to swallow errors, it is not intended to be called with a NULL pointer configuration. Fix the issue by only calling `git_config__get_int_force` only when configuration could be retrieved from the repository.
Patrick Steinhardt 486302d6 2016-03-01T19:11:33 submodule: avoid passing NULL pointers to strncmp In C89 it is undefined behavior to pass `NULL` pointers to `strncmp` and later on in C99 it has been explicitly stated that functions with an argument declared as `size_t nmemb` specifying the array length shall always have valid parameters, no matter if `nmemb` is 0 or not (see ISO 9899 §7.21.1.2). The function `str_equal_no_trailing_slash` always passes its parameters to `strncmp` if their lengths match. This means if one parameter is `NULL` and the other one either `NULL` or a string with length 0 we will pass the pointers to `strncmp` and cause undefined behavior. Fix this by explicitly handling the case when both lengths are 0.
Patrick Steinhardt 3fe5768b 2016-03-01T17:55:40 pack-objects: fix memory leak on overflow
Patrick Steinhardt 80a834a5 2016-03-01T16:00:49 index: assert required OID are non-NULL
Patrick Steinhardt 61d7328d 2016-03-01T15:35:45 object: avoid call of memset with ouf of bounds pointer When computing a short OID we do this by first copying the leading parts into the new OID structure and then setting the trailing part to zero. In the case of the desired length being `GIT_OID_HEXSZ - 1` we will call `memset` with an out of bounds pointer and a length of 0. While this seems to cause no problems for common platforms the C89 standard does not explicitly state that calling `memset` with an out of bounds pointer and length of 0 is valid. Fix the potential issue by using the newly introduced `git_oid__cpy_prefix` function.
Piet Brauer 0ac4a5de 2016-02-25T18:15:02 Check for __CLANG_INTTYPES_H This fixes an issue in Xcode 7.3 in objective-git where we get the error "Include of non-modular header file in module". Not importing this header again fixes the issue.
Patrick Steinhardt e126bc95 2016-03-01T14:40:17 config_file: handle missing quotation marks in section header When parsing a section header we expect something along the format of '[section "subsection"]'. When a section is mal-formated and is entirely missing its quotation marks we catch this case by observing that `strchr(line, '"') - strrchr(line, '"') = NULL - NULL = 0` and error out. Unfortunately, the error message is misleading though, as we state that we are missing the closing quotation mark while we in fact miss both quotation marks. Improve the error message by explicitly checking if the first quotation mark could be found and, if not, stating that quotation marks are completely missing.
Patrick Steinhardt 345758ad 2016-03-01T14:24:09 describe: handle error code returned by git_pqueue_insert
Carlos Martín Nieto 2ba9a0dd 2016-03-09T23:45:33 Merge pull request #3623 from ethomson/rebase_with_commit rebase: additional setup tests of exotic behavior
Carlos Martín Nieto ac6f62de 2016-03-09T21:37:39 Merge pull request #3672 from libgit2/cmn/do-fail-appveyor appveyor: stop if the first test fails
Carlos Martín Nieto 113e1634 2016-03-09T19:20:38 appveyor: stop if the first test fails
Edward Thomson 997c67da 2016-03-09T18:12:34 Merge pull request #3670 from libgit2/vmg/expand-fixes Fixes for `gid_odb_expand_ids`
Vicent Marti 1bbcb2b2 2016-03-09T17:47:53 odb: Try to lookup headers in all backends before passthrough
Vicent Marti e78d2ac9 2016-03-09T16:41:08 odb: Refactor `git_odb_expand_ids`
Vicent Marti 4416aa77 2016-03-09T11:29:46 odb: Implement new helper to read types without refreshing
Edward Thomson 084f2c4b 2016-03-09T14:51:13 Merge pull request #3668 from libgit2/cmn/mwindow-try-harder mwindow: free unused windows if we fail to mmap
Carlos Martín Nieto d50fd571 2016-03-09T11:16:16 mwindow: free unused windows if we fail to mmap The first time may be due to memory fragmentation or just bad luck on a 32-bit system. When we hit the mmap error for the first time, free up the unused windows and try again.
Vicent Marti 9a786650 2016-03-09T11:00:27 odb: Handle corner cases in `git_odb_expand_ids` The old implementation had two issues: 1. OIDs that were too short as to be ambiguous were not being handled properly. 2. If the last OID to expand in the array was missing from the ODB, we would leak a `GIT_ENOTFOUND` error code from the function.
Vicent Marti c68044a8 2016-03-08T21:17:38 Merge pull request #3656 from ethomson/exists_prefixes Introduce `git_odb_expand_ids`
Edward Thomson 62484f52 2016-03-08T14:09:55 git_odb_expand_ids: accept git_odb_expand_id array Take (and write to) an array of a struct, `git_odb_expand_id`.
Edward Thomson 4b1f0f79 2016-03-08T11:44:21 git_odb_expand_ids: rename func, return the type
Edward Thomson b7809b84 2016-03-08T13:38:55 Merge pull request #3555 from cbargren/ssh-git-protocols Support for ssh+git and git+ssh protocols
Edward Thomson 534ca888 2016-03-08T13:35:11 Merge pull request #3652 from libgit2/cmn/commit-to-memory commit: split creating the commit and writing it out
Carlos Martín Nieto 47cb42da 2016-03-03T22:56:02 commit: split creating the commit and writing it out Sometimes you want to create a commit but not write it out to the objectdb immediately. For these cases, provide a new function to retrieve the buffer instead of having to go through the db.
Carlos Martín Nieto eeff96c4 2016-03-08T10:43:33 Merge pull request #3655 from ethomson/nanosecond_defaults Enable nanosecond resolution by default
Edward Thomson 53fb823b 2016-03-07T17:37:17 index::racy: force racy entry Instead of hoping that we can get a racy entry by going real fast and praying real hard, just create a racy entry.
Edward Thomson eee17997 2016-03-08T01:45:29 Merge pull request #3658 from patrickmckenna/update-pro-git-link Update link to Pro Git's Git internals chapter
Patrick McKenna 698e0c27 2016-03-07T16:34:30 Update link to Pro Git's Git internals chapter.
Edward Thomson 565c4199 2016-03-07T17:04:32 index::nsec: don't expect shit filesystems to not suck If the underlying filesystem doesn't support better than one second resolution, then don't expect that turning on `GIT_USE_NSEC` does anything magical to change that.
Edward Thomson 6c04269c 2016-03-04T00:50:35 git_odb_exists_many_prefixes: query odb for multiple short ids Query the object database for multiple objects at a time, given their object ID (which may be abbreviated) and optional type.
Edward Thomson e10144ae 2016-03-04T01:18:30 odb: improved not found error messages When looking up an abbreviated oid, show the actual (abbreviated) oid the caller passed instead of a full (but ambiguously truncated) oid.
Edward Thomson 6abdf52d 2016-03-07T09:37:51 merge::workdir::dirty: update to use `st_ctime_nsec` Update unit test to use newfangled `st_ctime_nsec`, which provides indirection to the platform-correct name.
Edward Thomson 785d8c48 2016-03-04T13:50:23 Merge pull request #3653 from libgit2/cmn/treebuilder-submodule treebuilder: don't try to verify submodules exist in the odb
Carlos Martín Nieto ea5bf6bb 2016-03-04T12:34:38 treebuilder: don't try to verify submodules exist in the odb Submodules don't exist in the objectdb and the code is making us try to look for a blob with its commit id, which is obviously not going to work. Skip the test if the user wants to insert a submodule.
Edward Thomson 16099833 2016-03-03T22:57:45 Merge pull request #3651 from libgit2/cmn/init-libssh2 ssh: initialize libssh2
Carlos Martín Nieto 22f3d3aa 2016-03-03T22:26:31 ssh: initialize libssh2 We should have been doing this, but it initializes itself upon first use, which works as long as nobody's doing concurrent network operations. Initialize it on our init to make sure it's not getting initialized concurrently.
Carlos Martín Nieto 839bdb05 2016-03-03T21:20:33 Merge pull request #3639 from srajko/threading-openssl-libssh2 Expand OpenSSL and libssh2 thread safety documentation
Edward Thomson 2d880712 2016-03-03T15:08:12 Enable nanosecond resolution by default Nanosecond resolution is now the default in git itself. Enable this as our default as well.
Carlos Martín Nieto e23efa6d 2016-03-03T21:03:10 tests: take the version from our define
Carlos Martín Nieto 1e8255a3 2016-03-03T20:20:43 Bump version to 0.24.0
Carlos Martín Nieto c21c8f67 2016-03-03T20:18:55 CHANGELOG: prepre tamplate for release
Carlos Martín Nieto a7ef27af 2016-03-03T20:17:13 CHANGELOG: add note about WinHTTP cred handling
Carlos Martín Nieto 66a530eb 2016-03-03T20:11:18 Merge pull request #3648 from libgit2/cmn/auth-retry test: make sure we retry the auth callback on all platforms
Carlos Martín Nieto ba9bb664 2016-03-03T19:21:07 tests: create a ctest target for cred_callback
Carlos Martín Nieto 778fb695 2016-03-03T12:14:02 Merge pull request #3646 from pks-t/pks/xdiff-fix-from-upstream xdiff: fix memleak on error case
Carlos Martín Nieto a4cba9d4 2016-03-03T10:48:24 winhttp: retry authentication If the caller has provided bad authentication, give them another apportunity to get it right until they give up. This brings WinHTTP in line with the other transports.
Carlos Martín Nieto 25205737 2016-03-03T10:08:00 test: make sure we retry the auth callback on all platforms We were missing this test on Windows, which meant we didn't notice that we never fixed the single authentication attempt it tries, nor its wrong return code. Enable this for the unix platforms as well over HTTP. We previously were doing it locally but disabled it on OS X due to issues with its sshd not accepting password authentication.
Carlos Martín Nieto 9b3fc895 2016-03-03T11:17:36 tests: plug a leak
Edward Thomson edaffe22 2016-03-01T17:16:27 Merge pull request #3633 from ethomson/safe_creation Stricter object dependency checking during creation
Patrick Steinhardt a4ea7faa 2016-03-01T08:54:00 xdiff: fix memleak on error case Commit 3d1abc5afce fixes a memory leak in the xdiff code. In the process of upstreaming the fix it was pointed out by Johannes Schindelin that there is another memory leak present (see [1]). Fix the second memory leak by applying the upstream fix to our code base. [1]: http://thread.gmane.org/gmane.comp.version-control.git/287034
Edward Thomson dbee6835 2016-02-28T20:13:24 Merge pull request #3567 from sba1/few-p_getaddrinfo-fixes Few p_getaddrinfo fixes
Edward Thomson 09d99680 2016-02-28T20:10:44 rebase: additional tests for completing a rebase
Edward Thomson f2dddf52 2016-02-28T15:51:38 turn on strict object validation by default
Edward Thomson 4afe536b 2016-02-28T16:02:49 tests: use legitimate object ids Use legitimate (existing) object IDs in tests so that we have the ability to turn on strict object validation when running tests.
Edward Thomson 98c34149 2016-02-28T15:11:15 refs: honor strict object creation
Edward Thomson 3ef01e77 2016-02-28T14:37:37 git_object__is_valid: use `odb_read_header` This allows lighter weight validation in `git_object__is_valid` that does not require reading the entire object.
Edward Thomson 6ddf533a 2016-02-23T18:29:16 git_index_add: validate objects in index entries (optionally) When `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION` is turned on, validate the index entries given to `git_index_add`.
Carlos Martín Nieto 1a9d7c95 2016-02-28T19:43:45 Merge pull request #3644 from ethomson/debug_pool travis ci: enable debug pool for valgrind builds
Edward Thomson 2bbc7d3e 2016-02-23T15:00:27 treebuilder: validate tree entries (optionally) When `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION` is turned on, validate the tree and parent ids given to treebuilder insertion.
Edward Thomson ef63bab3 2016-02-23T13:34:35 git_commit: validate tree and parent ids When `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION` is turned on, validate the tree and parent ids given to commit creation functions.
Edward Thomson 7565dc65 2016-02-23T13:33:10 git_object__is_valid: simple object validity test
Edward Thomson 22a19f5b 2016-02-22T23:46:50 git_libgit2_opts: introduce `GIT_OPT_ENABLE_STRICT_OBJECT_CREATION`
Edward Thomson da033560 2016-02-28T11:34:36 travis ci: enable debug pool for valgrind builds
Edward Thomson 6cc4bac8 2016-02-28T11:31:10 Merge pull request #3577 from rossdylan/rossdylan/pooldebug Add a new build flag to disable the pool allocator
Stjepan Rajko 09db7fd8 2016-02-25T15:19:51 Expand OpenSSL and libssh2 thread safety documentation
Ross Delinger 93e16642 2016-02-26T12:51:13 Fixed typo in one of the ifndef's in pool.h used to enable/disable debug mode
Carlos Martín Nieto 9f4e7c84 2016-02-25T18:42:09 Merge pull request #3638 from ethomson/nsec USE_NSECS fixes
Edward Thomson 0d9a7498 2016-02-25T12:09:49 Merge pull request #3628 from pks-t/pks/coverity-fixes Coverity fixes
Edward Thomson fd129f28 2016-02-25T11:59:00 Merge pull request #3630 from libgit2/cmn/idx-extra-check Extra checks for packfile indices
Edward Thomson 3d6a42d1 2016-02-25T11:23:19 nsec: support NDK's crazy nanoseconds Android NDK does not have a `struct timespec` in its `struct stat` for nanosecond support, instead it has a single nanosecond member inside the struct stat itself. We will use that and use a macro to expand to the `st_mtim` / `st_mtimespec` definition on other systems (much like the existing `st_mtime` backcompat definition).
Edward Thomson a4c55069 2016-02-25T11:31:18 nsec: update staging test for GIT_USE_NSECS The index::nsec::staging_maintains_other_nanos test was created to ensure that when we stage an entry when GIT_USE_NSECS is *unset* that we truncate the index entry and do not persist the (old, invalid) nanosec values. Ensure that when GIT_USE_NSECS is *set* that we do not do that, and actually write the correct nanosecond values.
Carlos Martín Nieto 6d97beb9 2016-02-25T15:46:59 pack: don't allow a negative offset
Carlos Martín Nieto ea9e00cb 2016-02-23T18:15:43 pack: make sure we don't go out of bounds for extended entries A corrupt index might have data that tells us to go look past the end of the file for data. Catch these cases and return an appropriate error message.
Edward Thomson 9dfe1140 2016-02-25T09:08:23 Merge pull request #3637 from libgit2/cmn/conventions CONVENTIONS: update to include general public API principles
Carlos Martín Nieto 1f8cb02f 2016-02-25T14:51:00 CONVENTIONS: update to include general public API principles
Carlos Martín Nieto 68ad3156 2016-02-24T17:17:57 openssl: we already had the function, just needed the header
Carlos Martín Nieto f3d1be7d 2016-02-24T16:38:22 openssl: export the locking function when building without OpenSSL This got lost duing the move and it lets the users call this function just in case.
Carlos Martín Nieto 43955927 2016-02-23T22:27:36 Merge pull request #3631 from ethomson/giterr_fixups Minor `giterr` fixups
Edward Thomson cd59e0c0 2016-02-23T13:05:49 giterr_set_str: remove `GITERR_OS` documentation The `giterr_set_str` does not actually honor `GITERR_OS`. Remove the documentation that claims that we do.
Edward Thomson 04c3b35f 2016-02-23T13:02:07 map: use `giterr_set` internally Use the `giterr_set` function, which actually supports `GITERR_OS`. The `giterr_set_str` function is exposed for external users and will not append the operating system's error message.
Patrick Steinhardt 32f07984 2016-02-23T11:07:03 diff_tform: fix potential NULL pointer access The `normalize_find_opts` function in theory allows for the incoming diff to have no repository. When the caller does not pass in diff find options or if the GIT_DIFF_FIND_BY_CONFIG value is set, though, we try to derive the configuration from the diff's repository configuration without first verifying that the repository is actually set to a non-NULL value. Fix this issue by explicitly checking if the repository is set and if it is not, fall back to a default value of GIT_DIFF_FIND_RENAMES.