rugged 0.27.7 → 0.27.10

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.
Files changed (409) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -18,10 +18,6 @@
18
18
  #include "git2/transport.h"
19
19
  #include "util.h"
20
20
 
21
- #ifdef GIT_CURL
22
- # include "streams/curl.h"
23
- #endif
24
-
25
21
  #ifndef GIT_DEFAULT_CERT_LOCATION
26
22
  #define GIT_DEFAULT_CERT_LOCATION NULL
27
23
  #endif
@@ -43,12 +39,13 @@
43
39
 
44
40
  #undef inline
45
41
 
46
- mbedtls_ssl_config *git__ssl_conf;
47
- mbedtls_entropy_context *mbedtls_entropy;
48
-
49
42
  #define GIT_SSL_DEFAULT_CIPHERS "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-DSS-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-DSS-WITH-AES-256-GCM-SHA384:TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-DSS-WITH-AES-128-CBC-SHA256:TLS-DHE-DSS-WITH-AES-256-CBC-SHA256:TLS-DHE-DSS-WITH-AES-128-CBC-SHA:TLS-DHE-DSS-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-AES-128-GCM-SHA256:TLS-RSA-WITH-AES-256-GCM-SHA384:TLS-RSA-WITH-AES-128-CBC-SHA256:TLS-RSA-WITH-AES-256-CBC-SHA256:TLS-RSA-WITH-AES-128-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA"
50
43
  #define GIT_SSL_DEFAULT_CIPHERS_COUNT 30
51
44
 
45
+ static mbedtls_ssl_config *git__ssl_conf;
46
+ static int ciphers_list[GIT_SSL_DEFAULT_CIPHERS_COUNT];
47
+ static mbedtls_entropy_context *mbedtls_entropy;
48
+
52
49
  /**
53
50
  * This function aims to clean-up the SSL context which
54
51
  * we allocated.
@@ -80,21 +77,20 @@ int git_mbedtls_stream_global_init(void)
80
77
  struct stat statbuf;
81
78
  mbedtls_ctr_drbg_context *ctr_drbg = NULL;
82
79
 
83
- int *ciphers_list = NULL;
84
- int ciphers_known = 0;
80
+ size_t ciphers_known = 0;
85
81
  char *cipher_name = NULL;
86
82
  char *cipher_string = NULL;
87
83
  char *cipher_string_tmp = NULL;
88
84
 
89
- mbedtls_x509_crt *cacert = NULL;
90
-
91
85
  git__ssl_conf = git__malloc(sizeof(mbedtls_ssl_config));
86
+ GIT_ERROR_CHECK_ALLOC(git__ssl_conf);
87
+
92
88
  mbedtls_ssl_config_init(git__ssl_conf);
93
89
  if (mbedtls_ssl_config_defaults(git__ssl_conf,
94
90
  MBEDTLS_SSL_IS_CLIENT,
95
91
  MBEDTLS_SSL_TRANSPORT_STREAM,
96
92
  MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
97
- giterr_set(GITERR_SSL, "failed to initialize mbedTLS");
93
+ git_error_set(GIT_ERROR_SSL, "failed to initialize mbedTLS");
98
94
  goto cleanup;
99
95
  }
100
96
 
@@ -107,33 +103,44 @@ int git_mbedtls_stream_global_init(void)
107
103
  mbedtls_ssl_conf_authmode(git__ssl_conf, MBEDTLS_SSL_VERIFY_OPTIONAL);
108
104
 
109
105
  /* set the list of allowed ciphersuites */
110
- ciphers_list = calloc(GIT_SSL_DEFAULT_CIPHERS_COUNT, sizeof(int));
111
106
  ciphers_known = 0;
112
107
  cipher_string = cipher_string_tmp = git__strdup(GIT_SSL_DEFAULT_CIPHERS);
108
+ GIT_ERROR_CHECK_ALLOC(cipher_string);
109
+
113
110
  while ((cipher_name = git__strtok(&cipher_string_tmp, ":")) != NULL) {
114
111
  int cipherid = mbedtls_ssl_get_ciphersuite_id(cipher_name);
115
112
  if (cipherid == 0) continue;
116
113
 
114
+ if (ciphers_known >= ARRAY_SIZE(ciphers_list)) {
115
+ git_error_set(GIT_ERROR_SSL, "out of cipher list space");
116
+ goto cleanup;
117
+ }
118
+
117
119
  ciphers_list[ciphers_known++] = cipherid;
118
120
  }
119
121
  git__free(cipher_string);
120
122
 
121
123
  if (!ciphers_known) {
122
- giterr_set(GITERR_SSL, "no cipher could be enabled");
124
+ git_error_set(GIT_ERROR_SSL, "no cipher could be enabled");
123
125
  goto cleanup;
124
126
  }
125
127
  mbedtls_ssl_conf_ciphersuites(git__ssl_conf, ciphers_list);
126
128
 
127
129
  /* Seeding the random number generator */
128
130
  mbedtls_entropy = git__malloc(sizeof(mbedtls_entropy_context));
131
+ GIT_ERROR_CHECK_ALLOC(mbedtls_entropy);
132
+
129
133
  mbedtls_entropy_init(mbedtls_entropy);
130
134
 
131
135
  ctr_drbg = git__malloc(sizeof(mbedtls_ctr_drbg_context));
136
+ GIT_ERROR_CHECK_ALLOC(ctr_drbg);
137
+
132
138
  mbedtls_ctr_drbg_init(ctr_drbg);
139
+
133
140
  if (mbedtls_ctr_drbg_seed(ctr_drbg,
134
141
  mbedtls_entropy_func,
135
142
  mbedtls_entropy, NULL, 0) != 0) {
136
- giterr_set(GITERR_SSL, "failed to initialize mbedTLS entropy pool");
143
+ git_error_set(GIT_ERROR_SSL, "failed to initialize mbedTLS entropy pool");
137
144
  goto cleanup;
138
145
  }
139
146
 
@@ -150,8 +157,6 @@ int git_mbedtls_stream_global_init(void)
150
157
  return 0;
151
158
 
152
159
  cleanup:
153
- mbedtls_x509_crt_free(cacert);
154
- git__free(cacert);
155
160
  mbedtls_ctr_drbg_free(ctr_drbg);
156
161
  git__free(ctr_drbg);
157
162
  mbedtls_ssl_config_free(git__ssl_conf);
@@ -161,18 +166,16 @@ cleanup:
161
166
  return -1;
162
167
  }
163
168
 
164
- mbedtls_ssl_config *git__ssl_conf;
165
-
166
169
  static int bio_read(void *b, unsigned char *buf, size_t len)
167
170
  {
168
171
  git_stream *io = (git_stream *) b;
169
- return (int) git_stream_read(io, buf, len);
172
+ return (int) git_stream_read(io, buf, min(len, INT_MAX));
170
173
  }
171
174
 
172
175
  static int bio_write(void *b, const unsigned char *buf, size_t len)
173
176
  {
174
177
  git_stream *io = (git_stream *) b;
175
- return (int) git_stream_write(io, (const char *)buf, len, 0);
178
+ return (int) git_stream_write(io, (const char *)buf, min(len, INT_MAX), 0);
176
179
  }
177
180
 
178
181
  static int ssl_set_error(mbedtls_ssl_context *ssl, int error)
@@ -188,16 +191,16 @@ static int ssl_set_error(mbedtls_ssl_context *ssl, int error)
188
191
 
189
192
  switch(error) {
190
193
  case 0:
191
- giterr_set(GITERR_SSL, "SSL error: unknown error");
194
+ git_error_set(GIT_ERROR_SSL, "SSL error: unknown error");
192
195
  break;
193
196
 
194
197
  case MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:
195
- giterr_set(GITERR_SSL, "SSL error: %#04x [%x] - %s", error, ssl->session_negotiate->verify_result, errbuf);
198
+ git_error_set(GIT_ERROR_SSL, "SSL error: %#04x [%x] - %s", error, ssl->session_negotiate->verify_result, errbuf);
196
199
  ret = GIT_ECERTIFICATE;
197
200
  break;
198
201
 
199
202
  default:
200
- giterr_set(GITERR_SSL, "SSL error: %#04x - %s", error, errbuf);
203
+ git_error_set(GIT_ERROR_SSL, "SSL error: %#04x - %s", error, errbuf);
201
204
  }
202
205
 
203
206
  return ret;
@@ -223,7 +226,7 @@ static int verify_server_cert(mbedtls_ssl_context *ssl)
223
226
  char vrfy_buf[512];
224
227
  int len = mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), "", ret);
225
228
  if (len >= 1) vrfy_buf[len - 1] = '\0'; /* Remove trailing \n */
226
- giterr_set(GITERR_SSL, "the SSL certificate is invalid: %#04x - %s", ret, vrfy_buf);
229
+ git_error_set(GIT_ERROR_SSL, "the SSL certificate is invalid: %#04x - %s", ret, vrfy_buf);
227
230
  return GIT_ECERTIFICATE;
228
231
  }
229
232
 
@@ -233,6 +236,7 @@ static int verify_server_cert(mbedtls_ssl_context *ssl)
233
236
  typedef struct {
234
237
  git_stream parent;
235
238
  git_stream *io;
239
+ int owned;
236
240
  bool connected;
237
241
  char *host;
238
242
  mbedtls_ssl_context *ssl;
@@ -240,12 +244,12 @@ typedef struct {
240
244
  } mbedtls_stream;
241
245
 
242
246
 
243
- int mbedtls_connect(git_stream *stream)
247
+ static int mbedtls_connect(git_stream *stream)
244
248
  {
245
249
  int ret;
246
250
  mbedtls_stream *st = (mbedtls_stream *) stream;
247
251
 
248
- if ((ret = git_stream_connect(st->io)) < 0)
252
+ if (st->owned && (ret = git_stream_connect(st->io)) < 0)
249
253
  return ret;
250
254
 
251
255
  st->connected = true;
@@ -260,25 +264,25 @@ int mbedtls_connect(git_stream *stream)
260
264
  return verify_server_cert(st->ssl);
261
265
  }
262
266
 
263
- int mbedtls_certificate(git_cert **out, git_stream *stream)
267
+ static int mbedtls_certificate(git_cert **out, git_stream *stream)
264
268
  {
265
269
  unsigned char *encoded_cert;
266
270
  mbedtls_stream *st = (mbedtls_stream *) stream;
267
271
 
268
272
  const mbedtls_x509_crt *cert = mbedtls_ssl_get_peer_cert(st->ssl);
269
273
  if (!cert) {
270
- giterr_set(GITERR_SSL, "the server did not provide a certificate");
274
+ git_error_set(GIT_ERROR_SSL, "the server did not provide a certificate");
271
275
  return -1;
272
276
  }
273
277
 
274
278
  /* Retrieve the length of the certificate first */
275
279
  if (cert->raw.len == 0) {
276
- giterr_set(GITERR_NET, "failed to retrieve certificate information");
280
+ git_error_set(GIT_ERROR_NET, "failed to retrieve certificate information");
277
281
  return -1;
278
282
  }
279
283
 
280
284
  encoded_cert = git__malloc(cert->raw.len);
281
- GITERR_CHECK_ALLOC(encoded_cert);
285
+ GIT_ERROR_CHECK_ALLOC(encoded_cert);
282
286
  memcpy(encoded_cert, cert->raw.p, cert->raw.len);
283
287
 
284
288
  st->cert_info.parent.cert_type = GIT_CERT_X509;
@@ -297,25 +301,27 @@ static int mbedtls_set_proxy(git_stream *stream, const git_proxy_options *proxy_
297
301
  return git_stream_set_proxy(st->io, proxy_options);
298
302
  }
299
303
 
300
- ssize_t mbedtls_stream_write(git_stream *stream, const char *data, size_t len, int flags)
304
+ static ssize_t mbedtls_stream_write(git_stream *stream, const char *data, size_t len, int flags)
301
305
  {
302
- size_t read = 0;
303
306
  mbedtls_stream *st = (mbedtls_stream *) stream;
307
+ int written;
304
308
 
305
309
  GIT_UNUSED(flags);
306
310
 
307
- do {
308
- int error = mbedtls_ssl_write(st->ssl, (const unsigned char *)data + read, len - read);
309
- if (error <= 0) {
310
- return ssl_set_error(st->ssl, error);
311
- }
312
- read += error;
313
- } while (read < len);
311
+ /*
312
+ * `mbedtls_ssl_write` can only represent INT_MAX bytes
313
+ * written via its return value. We thus need to clamp
314
+ * the maximum number of bytes written.
315
+ */
316
+ len = min(len, INT_MAX);
317
+
318
+ if ((written = mbedtls_ssl_write(st->ssl, (const unsigned char *)data, len)) <= 0)
319
+ return ssl_set_error(st->ssl, written);
314
320
 
315
- return read;
321
+ return written;
316
322
  }
317
323
 
318
- ssize_t mbedtls_stream_read(git_stream *stream, void *data, size_t len)
324
+ static ssize_t mbedtls_stream_read(git_stream *stream, void *data, size_t len)
319
325
  {
320
326
  mbedtls_stream *st = (mbedtls_stream *) stream;
321
327
  int ret;
@@ -326,7 +332,7 @@ ssize_t mbedtls_stream_read(git_stream *stream, void *data, size_t len)
326
332
  return ret;
327
333
  }
328
334
 
329
- int mbedtls_stream_close(git_stream *stream)
335
+ static int mbedtls_stream_close(git_stream *stream)
330
336
  {
331
337
  mbedtls_stream *st = (mbedtls_stream *) stream;
332
338
  int ret = 0;
@@ -336,48 +342,49 @@ int mbedtls_stream_close(git_stream *stream)
336
342
 
337
343
  st->connected = false;
338
344
 
339
- return git_stream_close(st->io);
345
+ return st->owned ? git_stream_close(st->io) : 0;
340
346
  }
341
347
 
342
- void mbedtls_stream_free(git_stream *stream)
348
+ static void mbedtls_stream_free(git_stream *stream)
343
349
  {
344
350
  mbedtls_stream *st = (mbedtls_stream *) stream;
345
351
 
352
+ if (st->owned)
353
+ git_stream_free(st->io);
354
+
346
355
  git__free(st->host);
347
356
  git__free(st->cert_info.data);
348
- git_stream_free(st->io);
357
+ mbedtls_ssl_free(st->ssl);
349
358
  git__free(st->ssl);
350
359
  git__free(st);
351
360
  }
352
361
 
353
- int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port)
362
+ static int mbedtls_stream_wrap(
363
+ git_stream **out,
364
+ git_stream *in,
365
+ const char *host,
366
+ int owned)
354
367
  {
355
- int error;
356
368
  mbedtls_stream *st;
369
+ int error;
357
370
 
358
371
  st = git__calloc(1, sizeof(mbedtls_stream));
359
- GITERR_CHECK_ALLOC(st);
360
-
361
- #ifdef GIT_CURL
362
- error = git_curl_stream_new(&st->io, host, port);
363
- #else
364
- error = git_socket_stream_new(&st->io, host, port);
365
- #endif
372
+ GIT_ERROR_CHECK_ALLOC(st);
366
373
 
367
- if (error < 0)
368
- goto out_err;
374
+ st->io = in;
375
+ st->owned = owned;
369
376
 
370
377
  st->ssl = git__malloc(sizeof(mbedtls_ssl_context));
371
- GITERR_CHECK_ALLOC(st->ssl);
378
+ GIT_ERROR_CHECK_ALLOC(st->ssl);
372
379
  mbedtls_ssl_init(st->ssl);
373
380
  if (mbedtls_ssl_setup(st->ssl, git__ssl_conf)) {
374
- giterr_set(GITERR_SSL, "failed to create ssl object");
381
+ git_error_set(GIT_ERROR_SSL, "failed to create ssl object");
375
382
  error = -1;
376
383
  goto out_err;
377
384
  }
378
385
 
379
386
  st->host = git__strdup(host);
380
- GITERR_CHECK_ALLOC(st->host);
387
+ GIT_ERROR_CHECK_ALLOC(st->host);
381
388
 
382
389
  st->parent.version = GIT_STREAM_VERSION;
383
390
  st->parent.encrypted = 1;
@@ -395,12 +402,42 @@ int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port)
395
402
 
396
403
  out_err:
397
404
  mbedtls_ssl_free(st->ssl);
405
+ git_stream_close(st->io);
398
406
  git_stream_free(st->io);
399
407
  git__free(st);
400
408
 
401
409
  return error;
402
410
  }
403
411
 
412
+ int git_mbedtls_stream_wrap(
413
+ git_stream **out,
414
+ git_stream *in,
415
+ const char *host)
416
+ {
417
+ return mbedtls_stream_wrap(out, in, host, 0);
418
+ }
419
+
420
+ int git_mbedtls_stream_new(
421
+ git_stream **out,
422
+ const char *host,
423
+ const char *port)
424
+ {
425
+ git_stream *stream;
426
+ int error;
427
+
428
+ assert(out && host && port);
429
+
430
+ if ((error = git_socket_stream_new(&stream, host, port)) < 0)
431
+ return error;
432
+
433
+ if ((error = mbedtls_stream_wrap(out, stream, host, 1)) < 0) {
434
+ git_stream_close(stream);
435
+ git_stream_free(stream);
436
+ }
437
+
438
+ return error;
439
+ }
440
+
404
441
  int git_mbedtls__set_cert_location(const char *path, int is_dir)
405
442
  {
406
443
  int ret = 0;
@@ -410,6 +447,8 @@ int git_mbedtls__set_cert_location(const char *path, int is_dir)
410
447
  assert(path != NULL);
411
448
 
412
449
  cacert = git__malloc(sizeof(mbedtls_x509_crt));
450
+ GIT_ERROR_CHECK_ALLOC(cacert);
451
+
413
452
  mbedtls_x509_crt_init(cacert);
414
453
  if (is_dir) {
415
454
  ret = mbedtls_x509_crt_parse_path(cacert, path);
@@ -421,7 +460,7 @@ int git_mbedtls__set_cert_location(const char *path, int is_dir)
421
460
  mbedtls_x509_crt_free(cacert);
422
461
  git__free(cacert);
423
462
  mbedtls_strerror( ret, errbuf, 512 );
424
- giterr_set(GITERR_SSL, "failed to load CA certificates: %#04x - %s", ret, errbuf);
463
+ git_error_set(GIT_ERROR_SSL, "failed to load CA certificates: %#04x - %s", ret, errbuf);
425
464
  return -1;
426
465
  }
427
466
 
@@ -441,23 +480,4 @@ int git_mbedtls_stream_global_init(void)
441
480
  return 0;
442
481
  }
443
482
 
444
- int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port)
445
- {
446
- GIT_UNUSED(out);
447
- GIT_UNUSED(host);
448
- GIT_UNUSED(port);
449
-
450
- giterr_set(GITERR_SSL, "mbedTLS is not supported in this version");
451
- return -1;
452
- }
453
-
454
- int git_mbedtls__set_cert_location(const char *path, int is_dir)
455
- {
456
- GIT_UNUSED(path);
457
- GIT_UNUSED(is_dir);
458
-
459
- giterr_set(GITERR_SSL, "mbedTLS is not supported in this version");
460
- return -1;
461
- }
462
-
463
483
  #endif
@@ -13,8 +13,11 @@
13
13
 
14
14
  extern int git_mbedtls_stream_global_init(void);
15
15
 
16
- extern int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port);
17
-
16
+ #ifdef GIT_MBEDTLS
18
17
  extern int git_mbedtls__set_cert_location(const char *path, int is_dir);
19
18
 
19
+ extern int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port);
20
+ extern int git_mbedtls_stream_wrap(git_stream **out, git_stream *in, const char *host);
21
+ #endif
22
+
20
23
  #endif