rugged 0.24.6.1 → 0.25.0b1
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_repo.c +44 -36
 - data/lib/rugged/version.rb +1 -1
 - data/vendor/libgit2/CMakeLists.txt +10 -21
 - data/vendor/libgit2/include/git2/checkout.h +0 -7
 - data/vendor/libgit2/include/git2/commit.h +46 -0
 - data/vendor/libgit2/include/git2/common.h +1 -16
 - data/vendor/libgit2/include/git2/odb.h +47 -1
 - data/vendor/libgit2/include/git2/version.h +2 -2
 - data/vendor/libgit2/src/array.h +0 -40
 - data/vendor/libgit2/src/blame.c +3 -8
 - data/vendor/libgit2/src/blame_git.c +9 -20
 - data/vendor/libgit2/src/checkout.c +5 -13
 - data/vendor/libgit2/src/commit.c +132 -52
 - data/vendor/libgit2/src/common.h +1 -1
 - data/vendor/libgit2/src/config_cache.c +1 -2
 - data/vendor/libgit2/src/config_file.c +20 -14
 - data/vendor/libgit2/src/delta-apply.c +5 -36
 - data/vendor/libgit2/src/delta-apply.h +0 -12
 - data/vendor/libgit2/src/describe.c +1 -2
 - data/vendor/libgit2/src/diff_tform.c +3 -5
 - data/vendor/libgit2/src/filebuf.c +1 -6
 - data/vendor/libgit2/src/global.c +8 -28
 - data/vendor/libgit2/src/global.h +0 -1
 - data/vendor/libgit2/src/ignore.c +19 -56
 - data/vendor/libgit2/src/index.c +8 -27
 - data/vendor/libgit2/src/indexer.c +7 -11
 - data/vendor/libgit2/src/iterator.c +2 -2
 - data/vendor/libgit2/src/merge.c +0 -1
 - data/vendor/libgit2/src/mwindow.c +19 -8
 - data/vendor/libgit2/src/mwindow.h +2 -1
 - data/vendor/libgit2/src/object.c +6 -3
 - data/vendor/libgit2/src/odb.c +188 -48
 - data/vendor/libgit2/src/odb_loose.c +1 -1
 - data/vendor/libgit2/src/odb_pack.c +3 -0
 - data/vendor/libgit2/src/openssl_stream.c +27 -60
 - data/vendor/libgit2/src/openssl_stream.h +0 -106
 - data/vendor/libgit2/src/pack-objects.c +2 -4
 - data/vendor/libgit2/src/pack.c +9 -5
 - data/vendor/libgit2/src/posix.c +0 -7
 - data/vendor/libgit2/src/posix.h +0 -1
 - data/vendor/libgit2/src/push.c +6 -6
 - data/vendor/libgit2/src/refdb_fs.c +0 -1
 - data/vendor/libgit2/src/refs.c +0 -3
 - data/vendor/libgit2/src/refspec.c +2 -4
 - data/vendor/libgit2/src/remote.c +5 -15
 - data/vendor/libgit2/src/repository.c +21 -29
 - data/vendor/libgit2/src/settings.c +1 -23
 - data/vendor/libgit2/src/stransport_stream.c +9 -15
 - data/vendor/libgit2/src/submodule.c +2 -3
 - data/vendor/libgit2/src/sysdir.c +47 -41
 - data/vendor/libgit2/src/sysdir.h +5 -0
 - data/vendor/libgit2/src/tag.c +2 -8
 - data/vendor/libgit2/src/thread-utils.h +51 -5
 - data/vendor/libgit2/src/transports/http.c +3 -3
 - data/vendor/libgit2/src/transports/smart_pkt.c +4 -13
 - data/vendor/libgit2/src/transports/smart_protocol.c +17 -61
 - data/vendor/libgit2/src/tree.c +100 -83
 - data/vendor/libgit2/src/tree.h +5 -4
 - data/vendor/libgit2/src/unix/map.c +0 -5
 - data/vendor/libgit2/src/util.c +3 -3
 - data/vendor/libgit2/src/win32/map.c +5 -24
 - data/vendor/libgit2/src/win32/precompiled.h +1 -1
 - data/vendor/libgit2/src/win32/{thread.c → pthread.c} +80 -50
 - data/vendor/libgit2/src/win32/pthread.h +92 -0
 - data/vendor/libgit2/src/xdiff/xprepare.c +1 -2
 - metadata +7 -8
 - data/vendor/libgit2/src/unix/pthread.h +0 -54
 - data/vendor/libgit2/src/win32/thread.h +0 -62
 
| 
         @@ -13,7 +13,6 @@ 
     | 
|
| 
       13 
13 
     | 
    
         
             
            #include "posix.h"
         
     | 
| 
       14 
14 
     | 
    
         
             
            #include "stream.h"
         
     | 
| 
       15 
15 
     | 
    
         
             
            #include "socket_stream.h"
         
     | 
| 
       16 
     | 
    
         
            -
            #include "openssl_stream.h"
         
     | 
| 
       17 
16 
     | 
    
         
             
            #include "netops.h"
         
     | 
| 
       18 
17 
     | 
    
         
             
            #include "git2/transport.h"
         
     | 
| 
       19 
18 
     | 
    
         
             
            #include "git2/sys/openssl.h"
         
     | 
| 
         @@ -35,8 +34,6 @@ 
     | 
|
| 
       35 
34 
     | 
    
         | 
| 
       36 
35 
     | 
    
         
             
            SSL_CTX *git__ssl_ctx;
         
     | 
| 
       37 
36 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
            #define GIT_SSL_DEFAULT_CIPHERS "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA256:DHE-DSS-AES128-SHA:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA"
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
37 
     | 
    
         
             
            #ifdef GIT_THREADS
         
     | 
| 
       41 
38 
     | 
    
         | 
| 
       42 
39 
     | 
    
         
             
            static git_mutex *openssl_locks;
         
     | 
| 
         @@ -72,20 +69,12 @@ static void shutdown_ssl_locking(void) 
     | 
|
| 
       72 
69 
     | 
    
         | 
| 
       73 
70 
     | 
    
         
             
            #endif /* GIT_THREADS */
         
     | 
| 
       74 
71 
     | 
    
         | 
| 
       75 
     | 
    
         
            -
            static BIO_METHOD *git_stream_bio_method;
         
     | 
| 
       76 
     | 
    
         
            -
            static int init_bio_method(void);
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
72 
     | 
    
         
             
            /**
         
     | 
| 
       79 
73 
     | 
    
         
             
             * This function aims to clean-up the SSL context which
         
     | 
| 
       80 
74 
     | 
    
         
             
             * we allocated.
         
     | 
| 
       81 
75 
     | 
    
         
             
             */
         
     | 
| 
       82 
76 
     | 
    
         
             
            static void shutdown_ssl(void)
         
     | 
| 
       83 
77 
     | 
    
         
             
            {
         
     | 
| 
       84 
     | 
    
         
            -
            	if (git_stream_bio_method) {
         
     | 
| 
       85 
     | 
    
         
            -
            		BIO_meth_free(git_stream_bio_method);
         
     | 
| 
       86 
     | 
    
         
            -
            		git_stream_bio_method = NULL;
         
     | 
| 
       87 
     | 
    
         
            -
            	}
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
78 
     | 
    
         
             
            	if (git__ssl_ctx) {
         
     | 
| 
       90 
79 
     | 
    
         
             
            		SSL_CTX_free(git__ssl_ctx);
         
     | 
| 
       91 
80 
     | 
    
         
             
            		git__ssl_ctx = NULL;
         
     | 
| 
         @@ -96,7 +85,6 @@ int git_openssl_stream_global_init(void) 
     | 
|
| 
       96 
85 
     | 
    
         
             
            {
         
     | 
| 
       97 
86 
     | 
    
         
             
            #ifdef GIT_OPENSSL
         
     | 
| 
       98 
87 
     | 
    
         
             
            	long ssl_opts = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3;
         
     | 
| 
       99 
     | 
    
         
            -
            	const char *ciphers = git_libgit2__ssl_ciphers();
         
     | 
| 
       100 
88 
     | 
    
         | 
| 
       101 
89 
     | 
    
         
             
            	/* Older OpenSSL and MacOS OpenSSL doesn't have this */
         
     | 
| 
       102 
90 
     | 
    
         
             
            #ifdef SSL_OP_NO_COMPRESSION
         
     | 
| 
         @@ -120,23 +108,6 @@ int git_openssl_stream_global_init(void) 
     | 
|
| 
       120 
108 
     | 
    
         
             
            		git__ssl_ctx = NULL;
         
     | 
| 
       121 
109 
     | 
    
         
             
            		return -1;
         
     | 
| 
       122 
110 
     | 
    
         
             
            	}
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
            	if (!ciphers) {
         
     | 
| 
       125 
     | 
    
         
            -
            		ciphers = GIT_SSL_DEFAULT_CIPHERS;
         
     | 
| 
       126 
     | 
    
         
            -
            	}
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
            	if(!SSL_CTX_set_cipher_list(git__ssl_ctx, ciphers)) {
         
     | 
| 
       129 
     | 
    
         
            -
            		SSL_CTX_free(git__ssl_ctx);
         
     | 
| 
       130 
     | 
    
         
            -
            		git__ssl_ctx = NULL;
         
     | 
| 
       131 
     | 
    
         
            -
            		return -1;
         
     | 
| 
       132 
     | 
    
         
            -
            	}
         
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
            	if (init_bio_method() < 0) {
         
     | 
| 
       135 
     | 
    
         
            -
            		SSL_CTX_free(git__ssl_ctx);
         
     | 
| 
       136 
     | 
    
         
            -
            		git__ssl_ctx = NULL;
         
     | 
| 
       137 
     | 
    
         
            -
            		return -1;
         
     | 
| 
       138 
     | 
    
         
            -
            	}
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
111 
     | 
    
         
             
            #endif
         
     | 
| 
       141 
112 
     | 
    
         | 
| 
       142 
113 
     | 
    
         
             
            	git__on_shutdown(shutdown_ssl);
         
     | 
| 
         @@ -172,8 +143,10 @@ int git_openssl_set_locking(void) 
     | 
|
| 
       172 
143 
     | 
    
         | 
| 
       173 
144 
     | 
    
         
             
            static int bio_create(BIO *b)
         
     | 
| 
       174 
145 
     | 
    
         
             
            {
         
     | 
| 
       175 
     | 
    
         
            -
            	 
     | 
| 
       176 
     | 
    
         
            -
            	 
     | 
| 
      
 146 
     | 
    
         
            +
            	b->init = 1;
         
     | 
| 
      
 147 
     | 
    
         
            +
            	b->num = 0;
         
     | 
| 
      
 148 
     | 
    
         
            +
            	b->ptr = NULL;
         
     | 
| 
      
 149 
     | 
    
         
            +
            	b->flags = 0;
         
     | 
| 
       177 
150 
     | 
    
         | 
| 
       178 
151 
     | 
    
         
             
            	return 1;
         
     | 
| 
       179 
152 
     | 
    
         
             
            }
         
     | 
| 
         @@ -183,22 +156,23 @@ static int bio_destroy(BIO *b) 
     | 
|
| 
       183 
156 
     | 
    
         
             
            	if (!b)
         
     | 
| 
       184 
157 
     | 
    
         
             
            		return 0;
         
     | 
| 
       185 
158 
     | 
    
         | 
| 
       186 
     | 
    
         
            -
            	 
     | 
| 
      
 159 
     | 
    
         
            +
            	b->init = 0;
         
     | 
| 
      
 160 
     | 
    
         
            +
            	b->num = 0;
         
     | 
| 
      
 161 
     | 
    
         
            +
            	b->ptr = NULL;
         
     | 
| 
      
 162 
     | 
    
         
            +
            	b->flags = 0;
         
     | 
| 
       187 
163 
     | 
    
         | 
| 
       188 
164 
     | 
    
         
             
            	return 1;
         
     | 
| 
       189 
165 
     | 
    
         
             
            }
         
     | 
| 
       190 
166 
     | 
    
         | 
| 
       191 
167 
     | 
    
         
             
            static int bio_read(BIO *b, char *buf, int len)
         
     | 
| 
       192 
168 
     | 
    
         
             
            {
         
     | 
| 
       193 
     | 
    
         
            -
            	git_stream *io = (git_stream *)  
     | 
| 
       194 
     | 
    
         
            -
             
     | 
| 
      
 169 
     | 
    
         
            +
            	git_stream *io = (git_stream *) b->ptr;
         
     | 
| 
       195 
170 
     | 
    
         
             
            	return (int) git_stream_read(io, buf, len);
         
     | 
| 
       196 
171 
     | 
    
         
             
            }
         
     | 
| 
       197 
172 
     | 
    
         | 
| 
       198 
173 
     | 
    
         
             
            static int bio_write(BIO *b, const char *buf, int len)
         
     | 
| 
       199 
174 
     | 
    
         
             
            {
         
     | 
| 
       200 
     | 
    
         
            -
            	git_stream *io = (git_stream *)  
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
      
 175 
     | 
    
         
            +
            	git_stream *io = (git_stream *) b->ptr;
         
     | 
| 
       202 
176 
     | 
    
         
             
            	return (int) git_stream_write(io, buf, len, 0);
         
     | 
| 
       203 
177 
     | 
    
         
             
            }
         
     | 
| 
       204 
178 
     | 
    
         | 
| 
         @@ -227,22 +201,17 @@ static int bio_puts(BIO *b, const char *str) 
     | 
|
| 
       227 
201 
     | 
    
         
             
            	return bio_write(b, str, strlen(str));
         
     | 
| 
       228 
202 
     | 
    
         
             
            }
         
     | 
| 
       229 
203 
     | 
    
         | 
| 
       230 
     | 
    
         
            -
            static  
     | 
| 
       231 
     | 
    
         
            -
             
     | 
| 
       232 
     | 
    
         
            -
            	 
     | 
| 
       233 
     | 
    
         
            -
            	 
     | 
| 
       234 
     | 
    
         
            -
            	 
     | 
| 
       235 
     | 
    
         
            -
             
     | 
| 
       236 
     | 
    
         
            -
            	 
     | 
| 
       237 
     | 
    
         
            -
            	 
     | 
| 
       238 
     | 
    
         
            -
            	 
     | 
| 
       239 
     | 
    
         
            -
            	 
     | 
| 
       240 
     | 
    
         
            -
             
     | 
| 
       241 
     | 
    
         
            -
            	BIO_meth_set_create(git_stream_bio_method, bio_create);
         
     | 
| 
       242 
     | 
    
         
            -
            	BIO_meth_set_destroy(git_stream_bio_method, bio_destroy);
         
     | 
| 
       243 
     | 
    
         
            -
             
     | 
| 
       244 
     | 
    
         
            -
            	return 0;
         
     | 
| 
       245 
     | 
    
         
            -
            }
         
     | 
| 
      
 204 
     | 
    
         
            +
            static BIO_METHOD git_stream_bio_method = {
         
     | 
| 
      
 205 
     | 
    
         
            +
            	BIO_TYPE_SOURCE_SINK,
         
     | 
| 
      
 206 
     | 
    
         
            +
            	"git_stream",
         
     | 
| 
      
 207 
     | 
    
         
            +
            	bio_write,
         
     | 
| 
      
 208 
     | 
    
         
            +
            	bio_read,
         
     | 
| 
      
 209 
     | 
    
         
            +
            	bio_puts,
         
     | 
| 
      
 210 
     | 
    
         
            +
            	bio_gets,
         
     | 
| 
      
 211 
     | 
    
         
            +
            	bio_ctrl,
         
     | 
| 
      
 212 
     | 
    
         
            +
            	bio_create,
         
     | 
| 
      
 213 
     | 
    
         
            +
            	bio_destroy
         
     | 
| 
      
 214 
     | 
    
         
            +
            };
         
     | 
| 
       246 
215 
     | 
    
         | 
| 
       247 
216 
     | 
    
         
             
            static int ssl_set_error(SSL *ssl, int error)
         
     | 
| 
       248 
217 
     | 
    
         
             
            {
         
     | 
| 
         @@ -357,7 +326,7 @@ static int verify_server_cert(SSL *ssl, const char *host) 
     | 
|
| 
       357 
326 
     | 
    
         
             
            		num = sk_GENERAL_NAME_num(alts);
         
     | 
| 
       358 
327 
     | 
    
         
             
            		for (i = 0; i < num && matched != 1; i++) {
         
     | 
| 
       359 
328 
     | 
    
         
             
            			const GENERAL_NAME *gn = sk_GENERAL_NAME_value(alts, i);
         
     | 
| 
       360 
     | 
    
         
            -
            			const char *name = (char *)  
     | 
| 
      
 329 
     | 
    
         
            +
            			const char *name = (char *) ASN1_STRING_data(gn->d.ia5);
         
     | 
| 
       361 
330 
     | 
    
         
             
            			size_t namelen = (size_t) ASN1_STRING_length(gn->d.ia5);
         
     | 
| 
       362 
331 
     | 
    
         | 
| 
       363 
332 
     | 
    
         
             
            			/* Skip any names of a type we're not looking for */
         
     | 
| 
         @@ -412,7 +381,7 @@ static int verify_server_cert(SSL *ssl, const char *host) 
     | 
|
| 
       412 
381 
     | 
    
         
             
            		if (size > 0) {
         
     | 
| 
       413 
382 
     | 
    
         
             
            			peer_cn = OPENSSL_malloc(size + 1);
         
     | 
| 
       414 
383 
     | 
    
         
             
            			GITERR_CHECK_ALLOC(peer_cn);
         
     | 
| 
       415 
     | 
    
         
            -
            			memcpy(peer_cn,  
     | 
| 
      
 384 
     | 
    
         
            +
            			memcpy(peer_cn, ASN1_STRING_data(str), size);
         
     | 
| 
       416 
385 
     | 
    
         
             
            			peer_cn[size] = '\0';
         
     | 
| 
       417 
386 
     | 
    
         
             
            		} else {
         
     | 
| 
       418 
387 
     | 
    
         
             
            			goto cert_fail_name;
         
     | 
| 
         @@ -463,12 +432,11 @@ int openssl_connect(git_stream *stream) 
     | 
|
| 
       463 
432 
     | 
    
         | 
| 
       464 
433 
     | 
    
         
             
            	st->connected = true;
         
     | 
| 
       465 
434 
     | 
    
         | 
| 
       466 
     | 
    
         
            -
            	bio = BIO_new(git_stream_bio_method);
         
     | 
| 
      
 435 
     | 
    
         
            +
            	bio = BIO_new(&git_stream_bio_method);
         
     | 
| 
       467 
436 
     | 
    
         
             
            	GITERR_CHECK_ALLOC(bio);
         
     | 
| 
      
 437 
     | 
    
         
            +
            	bio->ptr = st->io;
         
     | 
| 
       468 
438 
     | 
    
         | 
| 
       469 
     | 
    
         
            -
            	BIO_set_data(bio, st->io);
         
     | 
| 
       470 
439 
     | 
    
         
             
            	SSL_set_bio(st->ssl, bio, bio);
         
     | 
| 
       471 
     | 
    
         
            -
             
     | 
| 
       472 
440 
     | 
    
         
             
            	/* specify the host in case SNI is needed */
         
     | 
| 
       473 
441 
     | 
    
         
             
            #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
         
     | 
| 
       474 
442 
     | 
    
         
             
            	SSL_set_tlsext_host_name(st->ssl, st->host);
         
     | 
| 
         @@ -541,9 +509,8 @@ ssize_t openssl_read(git_stream *stream, void *data, size_t len) 
     | 
|
| 
       541 
509 
     | 
    
         
             
            	openssl_stream *st = (openssl_stream *) stream;
         
     | 
| 
       542 
510 
     | 
    
         
             
            	int ret;
         
     | 
| 
       543 
511 
     | 
    
         | 
| 
       544 
     | 
    
         
            -
            	if ((ret = SSL_read(st->ssl, data, len)) <= 0) 
     | 
| 
       545 
     | 
    
         
            -
            		 
     | 
| 
       546 
     | 
    
         
            -
            	}
         
     | 
| 
      
 512 
     | 
    
         
            +
            	if ((ret = SSL_read(st->ssl, data, len)) <= 0)
         
     | 
| 
      
 513 
     | 
    
         
            +
            		ssl_set_error(st->ssl, ret);
         
     | 
| 
       547 
514 
     | 
    
         | 
| 
       548 
515 
     | 
    
         
             
            	return ret;
         
     | 
| 
       549 
516 
     | 
    
         
             
            }
         
     | 
| 
         @@ -13,110 +13,4 @@ extern int git_openssl_stream_global_init(void); 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            extern int git_openssl_stream_new(git_stream **out, const char *host, const char *port);
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
            /*
         
     | 
| 
       17 
     | 
    
         
            -
             * OpenSSL 1.1 made BIO opaque so we have to use functions to interact with it
         
     | 
| 
       18 
     | 
    
         
            -
             * which do not exist in previous versions. We define these inline functions so
         
     | 
| 
       19 
     | 
    
         
            -
             * we can program against the interface instead of littering the implementation
         
     | 
| 
       20 
     | 
    
         
            -
             * with ifdefs.
         
     | 
| 
       21 
     | 
    
         
            -
             */
         
     | 
| 
       22 
     | 
    
         
            -
            #ifdef GIT_OPENSSL
         
     | 
| 
       23 
     | 
    
         
            -
            # include <openssl/ssl.h>
         
     | 
| 
       24 
     | 
    
         
            -
            # include <openssl/err.h>
         
     | 
| 
       25 
     | 
    
         
            -
            # include <openssl/x509v3.h>
         
     | 
| 
       26 
     | 
    
         
            -
            # include <openssl/bio.h>
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
            # if OPENSSL_VERSION_NUMBER < 0x10100000L
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            GIT_INLINE(BIO_METHOD*) BIO_meth_new(int type, const char *name)
         
     | 
| 
       33 
     | 
    
         
            -
            {
         
     | 
| 
       34 
     | 
    
         
            -
            	BIO_METHOD *meth = git__calloc(1, sizeof(BIO_METHOD));
         
     | 
| 
       35 
     | 
    
         
            -
            	if (!meth) {
         
     | 
| 
       36 
     | 
    
         
            -
            		return NULL;
         
     | 
| 
       37 
     | 
    
         
            -
            	}
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            	meth->type = type;
         
     | 
| 
       40 
     | 
    
         
            -
            	meth->name = name;
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
            	return meth;
         
     | 
| 
       43 
     | 
    
         
            -
            }
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
            GIT_INLINE(void) BIO_meth_free(BIO_METHOD *biom)
         
     | 
| 
       46 
     | 
    
         
            -
            {
         
     | 
| 
       47 
     | 
    
         
            -
            	git__free(biom);
         
     | 
| 
       48 
     | 
    
         
            -
            }
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int))
         
     | 
| 
       51 
     | 
    
         
            -
            {
         
     | 
| 
       52 
     | 
    
         
            -
            	biom->bwrite = write;
         
     | 
| 
       53 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       54 
     | 
    
         
            -
            }
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int))
         
     | 
| 
       57 
     | 
    
         
            -
            {
         
     | 
| 
       58 
     | 
    
         
            -
            	biom->bread = read;
         
     | 
| 
       59 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       60 
     | 
    
         
            -
            }
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *))
         
     | 
| 
       63 
     | 
    
         
            -
            {
         
     | 
| 
       64 
     | 
    
         
            -
            	biom->bputs = puts;
         
     | 
| 
       65 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       66 
     | 
    
         
            -
            }
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_gets(BIO_METHOD *biom, int (*gets) (BIO *, char *, int))
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
            {
         
     | 
| 
       71 
     | 
    
         
            -
            	biom->bgets = gets;
         
     | 
| 
       72 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       73 
     | 
    
         
            -
            }
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *))
         
     | 
| 
       76 
     | 
    
         
            -
            {
         
     | 
| 
       77 
     | 
    
         
            -
            	biom->ctrl = ctrl;
         
     | 
| 
       78 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       79 
     | 
    
         
            -
            }
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *))
         
     | 
| 
       82 
     | 
    
         
            -
            {
         
     | 
| 
       83 
     | 
    
         
            -
            	biom->create = create;
         
     | 
| 
       84 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       85 
     | 
    
         
            -
            }
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
            GIT_INLINE(int) BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *))
         
     | 
| 
       88 
     | 
    
         
            -
            {
         
     | 
| 
       89 
     | 
    
         
            -
            	biom->destroy = destroy;
         
     | 
| 
       90 
     | 
    
         
            -
            	return 1;
         
     | 
| 
       91 
     | 
    
         
            -
            }
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
            GIT_INLINE(int) BIO_get_new_index(void)
         
     | 
| 
       94 
     | 
    
         
            -
            {
         
     | 
| 
       95 
     | 
    
         
            -
            	/* This exists as of 1.1 so before we'd just have 0 */
         
     | 
| 
       96 
     | 
    
         
            -
            	return 0;
         
     | 
| 
       97 
     | 
    
         
            -
            }
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            GIT_INLINE(void) BIO_set_init(BIO *b, int init)
         
     | 
| 
       100 
     | 
    
         
            -
            {
         
     | 
| 
       101 
     | 
    
         
            -
            	b->init = init;
         
     | 
| 
       102 
     | 
    
         
            -
            }
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
            GIT_INLINE(void) BIO_set_data(BIO *a, void *ptr)
         
     | 
| 
       105 
     | 
    
         
            -
            {
         
     | 
| 
       106 
     | 
    
         
            -
            	a->ptr = ptr;
         
     | 
| 
       107 
     | 
    
         
            -
            }
         
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
            GIT_INLINE(void*) BIO_get_data(BIO *a)
         
     | 
| 
       110 
     | 
    
         
            -
            {
         
     | 
| 
       111 
     | 
    
         
            -
            	return a->ptr;
         
     | 
| 
       112 
     | 
    
         
            -
            }
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
            GIT_INLINE(const unsigned char *) ASN1_STRING_get0_data(const ASN1_STRING *x)
         
     | 
| 
       115 
     | 
    
         
            -
            {
         
     | 
| 
       116 
     | 
    
         
            -
            	return ASN1_STRING_data((ASN1_STRING *)x);
         
     | 
| 
       117 
     | 
    
         
            -
            }
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
            # endif // OpenSSL < 1.1
         
     | 
| 
       120 
     | 
    
         
            -
            #endif // GIT_OPENSSL
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
16 
     | 
    
         
             
            #endif
         
     | 
| 
         @@ -848,10 +848,8 @@ static int try_delta(git_packbuilder *pb, struct unpacked *trg, 
     | 
|
| 
       848 
848 
     | 
    
         | 
| 
       849 
849 
     | 
    
         
             
            		git_packbuilder__cache_unlock(pb);
         
     | 
| 
       850 
850 
     | 
    
         | 
| 
       851 
     | 
    
         
            -
            		if (overflow) 
     | 
| 
       852 
     | 
    
         
            -
            			git__free(delta_buf);
         
     | 
| 
      
 851 
     | 
    
         
            +
            		if (overflow)
         
     | 
| 
       853 
852 
     | 
    
         
             
            			return -1;
         
     | 
| 
       854 
     | 
    
         
            -
            		}
         
     | 
| 
       855 
853 
     | 
    
         | 
| 
       856 
854 
     | 
    
         
             
            		trg_object->delta_data = git__realloc(delta_buf, delta_size);
         
     | 
| 
       857 
855 
     | 
    
         
             
            		GITERR_CHECK_ALLOC(trg_object->delta_data);
         
     | 
| 
         @@ -1186,7 +1184,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list, 
     | 
|
| 
       1186 
1184 
     | 
    
         
             
            		git_mutex_init(&p[i].mutex);
         
     | 
| 
       1187 
1185 
     | 
    
         
             
            		git_cond_init(&p[i].cond);
         
     | 
| 
       1188 
1186 
     | 
    
         | 
| 
       1189 
     | 
    
         
            -
            		ret = git_thread_create(&p[i].thread,
         
     | 
| 
      
 1187 
     | 
    
         
            +
            		ret = git_thread_create(&p[i].thread, NULL,
         
     | 
| 
       1190 
1188 
     | 
    
         
             
            					threaded_find_deltas, &p[i]);
         
     | 
| 
       1191 
1189 
     | 
    
         
             
            		if (ret) {
         
     | 
| 
       1192 
1190 
     | 
    
         
             
            			giterr_set(GITERR_THREAD, "unable to create thread");
         
     | 
    
        data/vendor/libgit2/src/pack.c
    CHANGED
    
    | 
         @@ -494,19 +494,21 @@ int git_packfile_resolve_header( 
     | 
|
| 
       494 
494 
     | 
    
         
             
            	int error;
         
     | 
| 
       495 
495 
     | 
    
         | 
| 
       496 
496 
     | 
    
         
             
            	error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
         
     | 
| 
      
 497 
     | 
    
         
            +
            	git_mwindow_close(&w_curs);
         
     | 
| 
       497 
498 
     | 
    
         
             
            	if (error < 0)
         
     | 
| 
       498 
499 
     | 
    
         
             
            		return error;
         
     | 
| 
       499 
500 
     | 
    
         | 
| 
       500 
501 
     | 
    
         
             
            	if (type == GIT_OBJ_OFS_DELTA || type == GIT_OBJ_REF_DELTA) {
         
     | 
| 
       501 
502 
     | 
    
         
             
            		size_t base_size;
         
     | 
| 
       502 
     | 
    
         
            -
            		 
     | 
| 
       503 
     | 
    
         
            -
             
     | 
| 
      
 503 
     | 
    
         
            +
            		git_rawobj delta;
         
     | 
| 
       504 
504 
     | 
    
         
             
            		base_offset = get_delta_base(p, &w_curs, &curpos, type, offset);
         
     | 
| 
       505 
505 
     | 
    
         
             
            		git_mwindow_close(&w_curs);
         
     | 
| 
       506 
     | 
    
         
            -
            		 
     | 
| 
      
 506 
     | 
    
         
            +
            		error = packfile_unpack_compressed(&delta, p, &w_curs, &curpos, size, type);
         
     | 
| 
      
 507 
     | 
    
         
            +
            		git_mwindow_close(&w_curs);
         
     | 
| 
      
 508 
     | 
    
         
            +
            		if (error < 0)
         
     | 
| 
       507 
509 
     | 
    
         
             
            			return error;
         
     | 
| 
       508 
     | 
    
         
            -
            		error =  
     | 
| 
       509 
     | 
    
         
            -
            		 
     | 
| 
      
 510 
     | 
    
         
            +
            		error = git__delta_read_header(delta.data, delta.len, &base_size, size_p);
         
     | 
| 
      
 511 
     | 
    
         
            +
            		git__free(delta.data);
         
     | 
| 
       510 
512 
     | 
    
         
             
            		if (error < 0)
         
     | 
| 
       511 
513 
     | 
    
         
             
            			return error;
         
     | 
| 
       512 
514 
     | 
    
         
             
            	} else
         
     | 
| 
         @@ -515,6 +517,7 @@ int git_packfile_resolve_header( 
     | 
|
| 
       515 
517 
     | 
    
         
             
            	while (type == GIT_OBJ_OFS_DELTA || type == GIT_OBJ_REF_DELTA) {
         
     | 
| 
       516 
518 
     | 
    
         
             
            		curpos = base_offset;
         
     | 
| 
       517 
519 
     | 
    
         
             
            		error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
         
     | 
| 
      
 520 
     | 
    
         
            +
            		git_mwindow_close(&w_curs);
         
     | 
| 
       518 
521 
     | 
    
         
             
            		if (error < 0)
         
     | 
| 
       519 
522 
     | 
    
         
             
            			return error;
         
     | 
| 
       520 
523 
     | 
    
         
             
            		if (type != GIT_OBJ_OFS_DELTA && type != GIT_OBJ_REF_DELTA)
         
     | 
| 
         @@ -582,6 +585,7 @@ static int pack_dependency_chain(git_dependency_chain *chain_out, 
     | 
|
| 
       582 
585 
     | 
    
         
             
            		elem->base_key = obj_offset;
         
     | 
| 
       583 
586 
     | 
    
         | 
| 
       584 
587 
     | 
    
         
             
            		error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
         
     | 
| 
      
 588 
     | 
    
         
            +
            		git_mwindow_close(&w_curs);
         
     | 
| 
       585 
589 
     | 
    
         | 
| 
       586 
590 
     | 
    
         
             
            		if (error < 0)
         
     | 
| 
       587 
591 
     | 
    
         
             
            			goto on_error;
         
     | 
    
        data/vendor/libgit2/src/posix.c
    CHANGED
    
    | 
         @@ -224,13 +224,6 @@ int git__page_size(size_t *page_size) 
     | 
|
| 
       224 
224 
     | 
    
         
             
            	return 0;
         
     | 
| 
       225 
225 
     | 
    
         
             
            }
         
     | 
| 
       226 
226 
     | 
    
         | 
| 
       227 
     | 
    
         
            -
            int git__mmap_alignment(size_t *alignment)
         
     | 
| 
       228 
     | 
    
         
            -
            {
         
     | 
| 
       229 
     | 
    
         
            -
            	/* dummy; here we don't need any alignment anyway */
         
     | 
| 
       230 
     | 
    
         
            -
            	*alignment = 4096;
         
     | 
| 
       231 
     | 
    
         
            -
            	return 0;
         
     | 
| 
       232 
     | 
    
         
            -
            }
         
     | 
| 
       233 
     | 
    
         
            -
             
     | 
| 
       234 
227 
     | 
    
         | 
| 
       235 
228 
     | 
    
         
             
            int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t offset)
         
     | 
| 
       236 
229 
     | 
    
         
             
            {
         
     | 
    
        data/vendor/libgit2/src/posix.h
    CHANGED
    
    | 
         @@ -109,7 +109,6 @@ extern int p_getcwd(char *buffer_out, size_t size); 
     | 
|
| 
       109 
109 
     | 
    
         
             
            extern int p_rename(const char *from, const char *to);
         
     | 
| 
       110 
110 
     | 
    
         | 
| 
       111 
111 
     | 
    
         
             
            extern int git__page_size(size_t *page_size);
         
     | 
| 
       112 
     | 
    
         
            -
            extern int git__mmap_alignment(size_t *page_size);
         
     | 
| 
       113 
112 
     | 
    
         | 
| 
       114 
113 
     | 
    
         
             
            /**
         
     | 
| 
       115 
114 
     | 
    
         
             
             * Platform-dependent methods
         
     | 
    
        data/vendor/libgit2/src/push.c
    CHANGED
    
    | 
         @@ -374,9 +374,9 @@ static int enqueue_object( 
     | 
|
| 
       374 
374 
     | 
    
         
             
            		case GIT_OBJ_COMMIT:
         
     | 
| 
       375 
375 
     | 
    
         
             
            			return 0;
         
     | 
| 
       376 
376 
     | 
    
         
             
            		case GIT_OBJ_TREE:
         
     | 
| 
       377 
     | 
    
         
            -
            			return git_packbuilder_insert_tree(pb, entry->oid);
         
     | 
| 
      
 377 
     | 
    
         
            +
            			return git_packbuilder_insert_tree(pb, &entry->oid);
         
     | 
| 
       378 
378 
     | 
    
         
             
            		default:
         
     | 
| 
       379 
     | 
    
         
            -
            			return git_packbuilder_insert(pb, entry->oid, entry->filename);
         
     | 
| 
      
 379 
     | 
    
         
            +
            			return git_packbuilder_insert(pb, &entry->oid, entry->filename);
         
     | 
| 
       380 
380 
     | 
    
         
             
            	}
         
     | 
| 
       381 
381 
     | 
    
         
             
            }
         
     | 
| 
       382 
382 
     | 
    
         | 
| 
         @@ -396,7 +396,7 @@ static int queue_differences( 
     | 
|
| 
       396 
396 
     | 
    
         
             
            		const git_tree_entry *d_entry = git_tree_entry_byindex(delta, j);
         
     | 
| 
       397 
397 
     | 
    
         
             
            		int cmp = 0;
         
     | 
| 
       398 
398 
     | 
    
         | 
| 
       399 
     | 
    
         
            -
            		if (!git_oid__cmp(b_entry->oid, d_entry->oid))
         
     | 
| 
      
 399 
     | 
    
         
            +
            		if (!git_oid__cmp(&b_entry->oid, &d_entry->oid))
         
     | 
| 
       400 
400 
     | 
    
         
             
            			goto loop;
         
     | 
| 
       401 
401 
     | 
    
         | 
| 
       402 
402 
     | 
    
         
             
            		cmp = strcmp(b_entry->filename, d_entry->filename);
         
     | 
| 
         @@ -407,15 +407,15 @@ static int queue_differences( 
     | 
|
| 
       407 
407 
     | 
    
         
             
            			git_tree_entry__is_tree(b_entry) &&
         
     | 
| 
       408 
408 
     | 
    
         
             
            			git_tree_entry__is_tree(d_entry)) {
         
     | 
| 
       409 
409 
     | 
    
         
             
            			/* Add the right-hand entry */
         
     | 
| 
       410 
     | 
    
         
            -
            			if ((error = git_packbuilder_insert(pb, d_entry->oid,
         
     | 
| 
      
 410 
     | 
    
         
            +
            			if ((error = git_packbuilder_insert(pb, &d_entry->oid,
         
     | 
| 
       411 
411 
     | 
    
         
             
            				d_entry->filename)) < 0)
         
     | 
| 
       412 
412 
     | 
    
         
             
            				goto on_error;
         
     | 
| 
       413 
413 
     | 
    
         | 
| 
       414 
414 
     | 
    
         
             
            			/* Acquire the subtrees and recurse */
         
     | 
| 
       415 
415 
     | 
    
         
             
            			if ((error = git_tree_lookup(&b_child,
         
     | 
| 
       416 
     | 
    
         
            -
            					git_tree_owner(base), b_entry->oid)) < 0 ||
         
     | 
| 
      
 416 
     | 
    
         
            +
            					git_tree_owner(base), &b_entry->oid)) < 0 ||
         
     | 
| 
       417 
417 
     | 
    
         
             
            				(error = git_tree_lookup(&d_child,
         
     | 
| 
       418 
     | 
    
         
            -
            					git_tree_owner(delta), d_entry->oid)) < 0 ||
         
     | 
| 
      
 418 
     | 
    
         
            +
            					git_tree_owner(delta), &d_entry->oid)) < 0 ||
         
     | 
| 
       419 
419 
     | 
    
         
             
            				(error = queue_differences(b_child, d_child, pb)) < 0)
         
     | 
| 
       420 
420 
     | 
    
         
             
            				goto on_error;
         
     | 
| 
       421 
421 
     | 
    
         | 
| 
         @@ -962,7 +962,6 @@ static int packed_write(refdb_fs_backend *backend) 
     | 
|
| 
       962 
962 
     | 
    
         | 
| 
       963 
963 
     | 
    
         
             
            	for (i = 0; i < git_sortedcache_entrycount(refcache); ++i) {
         
     | 
| 
       964 
964 
     | 
    
         
             
            		struct packref *ref = git_sortedcache_entry(refcache, i);
         
     | 
| 
       965 
     | 
    
         
            -
            		assert(ref);
         
     | 
| 
       966 
965 
     | 
    
         | 
| 
       967 
966 
     | 
    
         
             
            		if (packed_find_peel(backend, ref) < 0)
         
     | 
| 
       968 
967 
     | 
    
         
             
            			goto fail;
         
     | 
    
        data/vendor/libgit2/src/refs.c
    CHANGED
    
    | 
         @@ -289,9 +289,6 @@ cleanup: 
     | 
|
| 
       289 
289 
     | 
    
         
             
            			"Could not use '%s' as valid reference name", git_buf_cstr(&name));
         
     | 
| 
       290 
290 
     | 
    
         
             
            	}
         
     | 
| 
       291 
291 
     | 
    
         | 
| 
       292 
     | 
    
         
            -
            	if (error == GIT_ENOTFOUND)
         
     | 
| 
       293 
     | 
    
         
            -
            		giterr_set(GITERR_REFERENCE, "no reference found for shorthand '%s'", refname);
         
     | 
| 
       294 
     | 
    
         
            -
             
     | 
| 
       295 
292 
     | 
    
         
             
            	git_buf_free(&name);
         
     | 
| 
       296 
293 
     | 
    
         
             
            	git_buf_free(&refnamebuf);
         
     | 
| 
       297 
294 
     | 
    
         
             
            	return error;
         
     | 
| 
         @@ -53,10 +53,8 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch) 
     | 
|
| 
       53 
53 
     | 
    
         | 
| 
       54 
54 
     | 
    
         
             
            	if (rhs) {
         
     | 
| 
       55 
55 
     | 
    
         
             
            		size_t rlen = strlen(++rhs);
         
     | 
| 
       56 
     | 
    
         
            -
            		 
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
            			refspec->dst = git__strndup(rhs, rlen);
         
     | 
| 
       59 
     | 
    
         
            -
            		}
         
     | 
| 
      
 56 
     | 
    
         
            +
            		is_glob = (1 <= rlen && strchr(rhs, '*'));
         
     | 
| 
      
 57 
     | 
    
         
            +
            		refspec->dst = git__strndup(rhs, rlen);
         
     | 
| 
       60 
58 
     | 
    
         
             
            	}
         
     | 
| 
       61 
59 
     | 
    
         | 
| 
       62 
60 
     | 
    
         
             
            	llen = (rhs ? (size_t)(rhs - lhs - 1) : strlen(lhs));
         
     |