- 12 Dec, 2014 1 commit
-
-
Our git_openssl_set_locking() would ideally not exist. Make it clearer that we provide it as a last resort and you should prefer anything else.
Carlos Martín Nieto committed
-
- 05 Dec, 2014 1 commit
-
-
Edward Thomson committed
-
- 03 Dec, 2014 1 commit
-
-
Add missing else directive to fix compiler warning: control reaches end of non-void function
Stefan Widgren committed
-
- 17 Nov, 2014 1 commit
-
-
Ungureanu Marius committed
-
- 08 Nov, 2014 1 commit
-
-
This describes their purpose better, as we now initialize ssl and some other global stuff in there. Calling the init function is not something which has been optional for a while now.
Carlos Martín Nieto committed
-
- 03 Nov, 2014 1 commit
-
-
Jacques Germishuys committed
-
- 01 Nov, 2014 2 commits
-
-
Extract the lock-setting functions into their own, as we cannot assume that it's ok for us to set this unconditionally.
Carlos Martín Nieto committed -
We're freeing the memory which holds the locks so we must make sure that the locking function doesn't try to use it.
Carlos Martín Nieto committed
-
- 27 Oct, 2014 1 commit
-
-
Edward Thomson committed
-
- 23 Oct, 2014 1 commit
-
-
All versions of SSL are considered deprecated now, so let's ask OpenSSl to only use TLSv1. We still ask it to load those ciphers for compatibility with servers which want to use an older hello but will use TLS for encryption. For good measure we also disable compression, which can be exploitable, if the OpenSSL version supports it.
Carlos Martín Nieto committed
-
- 13 Sep, 2014 1 commit
-
-
When we free the global state at thread termination, we must also free the error message in order not to leak the string once per thread.
Carlos Martín Nieto committed
-
- 13 Jul, 2014 1 commit
-
-
Jacques Germishuys committed
-
- 30 Jun, 2014 1 commit
-
-
The OpenSSL library-loading functions do not expect to be called multiple times. Add a flag in the non-threaded libgit2 init so we only call once. This fixes #2446.
Carlos Martín Nieto committed
-
- 12 Jun, 2014 3 commits
-
-
Bring together all of the OpenSSL initialization to git_threads_init() so it's together and doesn't need locks. Moving it here also gives us libssh2 thread safety (when built against openssl).
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-
OpenSSL's tests init everything in the main thread, so let's do that.
Carlos Martín Nieto committed
-
- 11 Jun, 2014 1 commit
-
-
The OpenSSL init functions are not reentrant, which means that running multiple fetches in parallel can cause us to crash. Use a mutex to init OpenSSL, and since we're adding this extra checks, init it only once.
Carlos Martín Nieto committed
-
- 07 Jun, 2014 1 commit
-
-
Philip Kelley committed
-
- 06 May, 2014 2 commits
-
-
1) Call to git_shutdown results in setting git__n_shutdown_callbacks to -1. Next call to git__on_shutdown results in ABW (Array Bound Write) for array git__shutdown_callbacks. In the current Implementation, git_atomic_dec is called git__n_shutdown_callbacks + 1 times. I have modified it to a for loop so that it is more readable. It would not set git__n_shutdown_callbacks to a negative number and reset the elements of git__shutdown_callbacks to NULL. 2) In function git_sysdir_get, shutdown function is registered only if git_sysdir__dirs_shutdown_set is set to 0. However, after this variable is set to 1, it is never reset to 0. If git_sysdir_global_init is called again from synchronized_threads_init it does not register shutdown function for this subsystem.
Anurag Gupta committed -
Anurag Gupta committed
-
- 01 May, 2014 1 commit
-
-
Jacques Germishuys committed
-
- 17 Apr, 2014 1 commit
-
-
Russell Belfer committed
-
- 11 Apr, 2014 1 commit
-
-
Jacques Germishuys committed
-
- 25 Feb, 2014 1 commit
-
-
Edward Thomson committed
-
- 05 Oct, 2013 3 commits
-
-
Ben Straub committed
-
Philip Kelley committed
-
Ben Straub committed
-
- 17 Sep, 2013 1 commit
-
-
Increasingly there are a number of components that want to do some cleanup at global shutdown time (at least if there are not going to be memory leaks). This creates a very simple system of shutdown hooks that will be invoked by git_threads_shutdown. Right now, the maximum number of hooks is hardcoded, but since adding a hook is not a public API, it should be fine and I thought it was better to start off with really simple code.
Russell Belfer committed
-
- 26 Aug, 2013 1 commit
-
-
This loads SRWLock APIs at runtime and in their absence (i.e. on Windows before Vista) falls back on a regular CRITICAL_SECTION that will not permit concurrent readers.
Russell Belfer committed
-
- 11 Jul, 2013 1 commit
-
-
Edward Thomson committed
-
- 31 May, 2013 1 commit
-
-
It is obviously quite a serious problem if this happens, but mutex initialization can fail and we should detect it. It's a bit like a memory allocation failure, in that you're probably pretty screwed if this occurs, but at least we'll catch it.
Russell Belfer committed
-
- 22 Apr, 2013 1 commit
-
-
This builds on the earlier thread safety work to make it so that setting the odb, index, refdb, or config for a repository is done in a threadsafe manner with minimized locking time. This is done by adding a lock to the repository object and using it to guard the assignment of the above listed pointers. The lock is only held to assign the pointer value. This also contains some minor fixes to the other work with pack files to reduce the time that locks are being held to and fix an apparently memory leak.
Russell Belfer committed
-
- 18 Mar, 2013 1 commit
-
-
This switches the APIs for setting and getting the global/system search paths from using git_strarray to using a simple string with GIT_PATH_LIST_SEPARATOR delimited paths, just as the environment PATH variable would contain. This makes it simpler to get and set the value. I also added code to expand "$PATH" when setting a new value to embed the old value of the path. This means that I no longer require separate actions to PREPEND to the value.
Russell Belfer committed
-
- 08 Jan, 2013 1 commit
-
-
Edward Thomson committed
-
- 09 Dec, 2012 1 commit
-
-
This could also use PTHREAD_MUTEX_INITIALIZER, but a dynamic initializer seems like a more portable concept, and we won't need another #define on top of git_mutex_init()
Justin Spahr-Summers committed
-
- 13 Nov, 2012 2 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
- 01 Oct, 2012 1 commit
-
-
Vicent Marti committed
-
- 20 Aug, 2012 1 commit
-
-
Up to now, the idea was that the user would do all the operations for one repository in the same thread. Thus we could have the memory-mapped window information thread-local and avoid any locking. This is not practical in a few environments, such as Apple's GCD which allocates threads arbitrarily or the .NET CLR, where the OS-level thread can change at any moment. Make the control structure global and protect it with a mutex so we don't depend on the thread currently executing the code.
Carlos Martín Nieto committed
-
- 25 Apr, 2012 1 commit
-
-
This adds a `git_pool` object that can do simple paged memory allocation with free for the entire pool at once. Using this, you can replace many small allocations with large blocks that can then cheaply be doled out in small pieces. This is best used when you plan to free the small blocks all at once - for example, if they represent the parsed state from a file or data stream that are either all kept or all discarded. There are two real patterns of usage for `git_pools`: either for "string" allocation, where the item size is a single byte and you end up just packing the allocations in together, or for "fixed size" allocation where you are allocating a large object (e.g. a `git_oid`) and you generally just allocation single objects that can be tightly packed. Of course, you can use it for other things, but those two cases are the easiest.
Russell Belfer committed
-