rugged 1.3.2.3 → 1.4.2

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 (329) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +1 -1
  3. data/ext/rugged/rugged_config.c +7 -2
  4. data/ext/rugged/rugged_remote.c +17 -0
  5. data/lib/rugged/version.rb +1 -1
  6. data/vendor/libgit2/CMakeLists.txt +103 -276
  7. data/vendor/libgit2/COPYING +36 -19
  8. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  9. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  10. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  11. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  12. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  13. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  14. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  15. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  16. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  17. data/vendor/libgit2/cmake/FindPCRE.cmake +13 -13
  18. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  19. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  20. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  21. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  22. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  23. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  24. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  25. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  26. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  27. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  28. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  29. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  30. data/vendor/libgit2/cmake/SelectHashes.cmake +39 -49
  31. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  32. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  33. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  34. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  35. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  36. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +31 -31
  37. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  38. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  39. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  40. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  42. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  43. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  44. data/vendor/libgit2/deps/zlib/crc32.c +288 -975
  45. data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
  46. data/vendor/libgit2/deps/zlib/deflate.c +31 -83
  47. data/vendor/libgit2/deps/zlib/deflate.h +15 -12
  48. data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
  49. data/vendor/libgit2/deps/zlib/infback.c +1 -2
  50. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  51. data/vendor/libgit2/deps/zlib/inflate.c +8 -39
  52. data/vendor/libgit2/deps/zlib/inflate.h +2 -3
  53. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  54. data/vendor/libgit2/deps/zlib/trees.c +48 -27
  55. data/vendor/libgit2/deps/zlib/zlib.h +100 -126
  56. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  57. data/vendor/libgit2/deps/zlib/zutil.h +9 -12
  58. data/vendor/libgit2/include/git2/apply.h +16 -2
  59. data/vendor/libgit2/include/git2/attr.h +11 -2
  60. data/vendor/libgit2/include/git2/blame.h +4 -1
  61. data/vendor/libgit2/include/git2/blob.h +14 -1
  62. data/vendor/libgit2/include/git2/branch.h +2 -0
  63. data/vendor/libgit2/include/git2/buffer.h +18 -78
  64. data/vendor/libgit2/include/git2/cert.h +2 -2
  65. data/vendor/libgit2/include/git2/checkout.h +5 -2
  66. data/vendor/libgit2/include/git2/clone.h +3 -3
  67. data/vendor/libgit2/include/git2/commit.h +2 -0
  68. data/vendor/libgit2/include/git2/common.h +5 -12
  69. data/vendor/libgit2/include/git2/config.h +19 -3
  70. data/vendor/libgit2/include/git2/credential.h +2 -1
  71. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  72. data/vendor/libgit2/include/git2/deprecated.h +1 -1
  73. data/vendor/libgit2/include/git2/describe.h +7 -2
  74. data/vendor/libgit2/include/git2/diff.h +17 -9
  75. data/vendor/libgit2/include/git2/email.h +1 -1
  76. data/vendor/libgit2/include/git2/errors.h +1 -2
  77. data/vendor/libgit2/include/git2/filter.h +7 -2
  78. data/vendor/libgit2/include/git2/graph.h +1 -0
  79. data/vendor/libgit2/include/git2/ignore.h +1 -1
  80. data/vendor/libgit2/include/git2/index.h +11 -5
  81. data/vendor/libgit2/include/git2/indexer.h +19 -0
  82. data/vendor/libgit2/include/git2/merge.h +23 -3
  83. data/vendor/libgit2/include/git2/message.h +2 -0
  84. data/vendor/libgit2/include/git2/object.h +23 -0
  85. data/vendor/libgit2/include/git2/odb.h +37 -7
  86. data/vendor/libgit2/include/git2/odb_backend.h +1 -1
  87. data/vendor/libgit2/include/git2/pack.h +24 -8
  88. data/vendor/libgit2/include/git2/patch.h +8 -0
  89. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  90. data/vendor/libgit2/include/git2/proxy.h +1 -1
  91. data/vendor/libgit2/include/git2/rebase.h +9 -1
  92. data/vendor/libgit2/include/git2/refdb.h +3 -0
  93. data/vendor/libgit2/include/git2/reflog.h +1 -1
  94. data/vendor/libgit2/include/git2/refs.h +2 -2
  95. data/vendor/libgit2/include/git2/remote.h +184 -37
  96. data/vendor/libgit2/include/git2/repository.h +14 -9
  97. data/vendor/libgit2/include/git2/reset.h +2 -2
  98. data/vendor/libgit2/include/git2/revparse.h +1 -1
  99. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  100. data/vendor/libgit2/include/git2/signature.h +1 -1
  101. data/vendor/libgit2/include/git2/stash.h +3 -3
  102. data/vendor/libgit2/include/git2/status.h +9 -3
  103. data/vendor/libgit2/include/git2/submodule.h +7 -2
  104. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  105. data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -5
  106. data/vendor/libgit2/include/git2/sys/remote.h +31 -0
  107. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  108. data/vendor/libgit2/include/git2/sys/transport.h +25 -34
  109. data/vendor/libgit2/include/git2/tag.h +1 -0
  110. data/vendor/libgit2/include/git2/tree.h +4 -3
  111. data/vendor/libgit2/include/git2/types.h +7 -7
  112. data/vendor/libgit2/include/git2/version.h +3 -3
  113. data/vendor/libgit2/include/git2/worktree.h +12 -2
  114. data/vendor/libgit2/src/CMakeLists.txt +189 -315
  115. data/vendor/libgit2/src/annotated_commit.h +1 -1
  116. data/vendor/libgit2/src/apply.c +18 -18
  117. data/vendor/libgit2/src/apply.h +2 -2
  118. data/vendor/libgit2/src/attr.c +18 -18
  119. data/vendor/libgit2/src/attr_file.c +17 -17
  120. data/vendor/libgit2/src/attr_file.h +4 -4
  121. data/vendor/libgit2/src/attrcache.c +17 -12
  122. data/vendor/libgit2/src/blame_git.c +1 -1
  123. data/vendor/libgit2/src/blob.c +33 -26
  124. data/vendor/libgit2/src/blob.h +1 -1
  125. data/vendor/libgit2/src/branch.c +150 -109
  126. data/vendor/libgit2/src/branch.h +15 -3
  127. data/vendor/libgit2/src/buf.c +126 -0
  128. data/vendor/libgit2/src/buf.h +50 -0
  129. data/vendor/libgit2/src/cc-compat.h +1 -1
  130. data/vendor/libgit2/src/checkout.c +74 -68
  131. data/vendor/libgit2/src/cherrypick.c +10 -10
  132. data/vendor/libgit2/src/clone.c +66 -66
  133. data/vendor/libgit2/src/commit.c +128 -58
  134. data/vendor/libgit2/src/commit.h +24 -1
  135. data/vendor/libgit2/src/commit_graph.c +68 -53
  136. data/vendor/libgit2/src/commit_graph.h +10 -3
  137. data/vendor/libgit2/src/commit_list.c +2 -3
  138. data/vendor/libgit2/src/common.h +10 -3
  139. data/vendor/libgit2/src/config.c +99 -77
  140. data/vendor/libgit2/src/config.h +15 -2
  141. data/vendor/libgit2/src/config_file.c +103 -91
  142. data/vendor/libgit2/src/config_mem.c +9 -9
  143. data/vendor/libgit2/src/config_parse.c +27 -23
  144. data/vendor/libgit2/src/crlf.c +24 -21
  145. data/vendor/libgit2/src/date.c +10 -17
  146. data/vendor/libgit2/src/date.h +33 -0
  147. data/vendor/libgit2/src/describe.c +27 -19
  148. data/vendor/libgit2/src/diff.c +25 -8
  149. data/vendor/libgit2/src/diff.h +2 -4
  150. data/vendor/libgit2/src/diff_driver.c +34 -36
  151. data/vendor/libgit2/src/diff_driver.h +3 -3
  152. data/vendor/libgit2/src/diff_file.c +29 -20
  153. data/vendor/libgit2/src/diff_generate.c +30 -6
  154. data/vendor/libgit2/src/diff_generate.h +5 -3
  155. data/vendor/libgit2/src/diff_print.c +102 -95
  156. data/vendor/libgit2/src/diff_stats.c +40 -29
  157. data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
  158. data/vendor/libgit2/src/diff_tform.c +9 -8
  159. data/vendor/libgit2/src/diff_xdiff.c +3 -8
  160. data/vendor/libgit2/src/email.c +54 -38
  161. data/vendor/libgit2/src/email.h +1 -1
  162. data/vendor/libgit2/src/errors.c +18 -18
  163. data/vendor/libgit2/src/features.h.in +6 -1
  164. data/vendor/libgit2/src/fetch.c +69 -24
  165. data/vendor/libgit2/src/fetch.h +1 -1
  166. data/vendor/libgit2/src/fetchhead.c +19 -19
  167. data/vendor/libgit2/src/filebuf.c +28 -28
  168. data/vendor/libgit2/src/filebuf.h +1 -1
  169. data/vendor/libgit2/src/filter.c +96 -52
  170. data/vendor/libgit2/src/filter.h +26 -5
  171. data/vendor/libgit2/src/fs_path.c +1912 -0
  172. data/vendor/libgit2/src/fs_path.h +752 -0
  173. data/vendor/libgit2/src/futils.c +91 -85
  174. data/vendor/libgit2/src/futils.h +26 -14
  175. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
  176. data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
  177. data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
  178. data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
  179. data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
  180. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
  181. data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
  182. data/vendor/libgit2/src/hash/sha1.h +3 -1
  183. data/vendor/libgit2/src/hash.c +67 -35
  184. data/vendor/libgit2/src/hash.h +12 -12
  185. data/vendor/libgit2/src/ident.c +18 -18
  186. data/vendor/libgit2/src/ignore.c +35 -34
  187. data/vendor/libgit2/src/ignore.h +2 -2
  188. data/vendor/libgit2/src/index.c +79 -80
  189. data/vendor/libgit2/src/index.h +6 -3
  190. data/vendor/libgit2/src/indexer.c +75 -57
  191. data/vendor/libgit2/src/iterator.c +64 -56
  192. data/vendor/libgit2/src/iterator.h +5 -5
  193. data/vendor/libgit2/src/khash.h +1 -1
  194. data/vendor/libgit2/src/libgit2.c +22 -19
  195. data/vendor/libgit2/src/mailmap.c +38 -36
  196. data/vendor/libgit2/src/merge.c +27 -27
  197. data/vendor/libgit2/src/merge.h +1 -14
  198. data/vendor/libgit2/src/merge_driver.c +2 -2
  199. data/vendor/libgit2/src/merge_file.c +13 -3
  200. data/vendor/libgit2/src/message.c +21 -10
  201. data/vendor/libgit2/src/midx.c +83 -66
  202. data/vendor/libgit2/src/midx.h +3 -3
  203. data/vendor/libgit2/src/mwindow.c +1 -1
  204. data/vendor/libgit2/src/net.c +278 -68
  205. data/vendor/libgit2/src/net.h +10 -3
  206. data/vendor/libgit2/src/netops.c +1 -1
  207. data/vendor/libgit2/src/netops.h +1 -1
  208. data/vendor/libgit2/src/notes.c +20 -29
  209. data/vendor/libgit2/src/object.c +49 -9
  210. data/vendor/libgit2/src/object.h +1 -1
  211. data/vendor/libgit2/src/odb.c +35 -32
  212. data/vendor/libgit2/src/odb.h +1 -1
  213. data/vendor/libgit2/src/odb_loose.c +68 -68
  214. data/vendor/libgit2/src/odb_mempack.c +18 -5
  215. data/vendor/libgit2/src/odb_pack.c +43 -43
  216. data/vendor/libgit2/src/oid.c +11 -4
  217. data/vendor/libgit2/src/oid.h +15 -0
  218. data/vendor/libgit2/src/pack-objects.c +41 -26
  219. data/vendor/libgit2/src/pack-objects.h +11 -6
  220. data/vendor/libgit2/src/pack.c +10 -10
  221. data/vendor/libgit2/src/patch.c +3 -3
  222. data/vendor/libgit2/src/patch.h +1 -0
  223. data/vendor/libgit2/src/patch_generate.c +27 -11
  224. data/vendor/libgit2/src/patch_generate.h +5 -5
  225. data/vendor/libgit2/src/patch_parse.c +24 -24
  226. data/vendor/libgit2/src/path.c +76 -1951
  227. data/vendor/libgit2/src/path.h +34 -741
  228. data/vendor/libgit2/src/pathspec.c +6 -6
  229. data/vendor/libgit2/src/pathspec.h +2 -2
  230. data/vendor/libgit2/src/posix.c +3 -3
  231. data/vendor/libgit2/src/posix.h +1 -0
  232. data/vendor/libgit2/src/pqueue.h +1 -1
  233. data/vendor/libgit2/src/proxy.c +4 -1
  234. data/vendor/libgit2/src/proxy.h +1 -1
  235. data/vendor/libgit2/src/push.c +30 -35
  236. data/vendor/libgit2/src/push.h +4 -16
  237. data/vendor/libgit2/src/rand.c +226 -0
  238. data/vendor/libgit2/src/rand.h +37 -0
  239. data/vendor/libgit2/src/reader.c +8 -8
  240. data/vendor/libgit2/src/reader.h +2 -2
  241. data/vendor/libgit2/src/rebase.c +89 -88
  242. data/vendor/libgit2/src/refdb_fs.c +447 -173
  243. data/vendor/libgit2/src/refs.c +32 -32
  244. data/vendor/libgit2/src/refs.h +2 -2
  245. data/vendor/libgit2/src/refspec.c +32 -37
  246. data/vendor/libgit2/src/refspec.h +5 -2
  247. data/vendor/libgit2/src/regexp.c +1 -1
  248. data/vendor/libgit2/src/remote.c +713 -419
  249. data/vendor/libgit2/src/remote.h +15 -10
  250. data/vendor/libgit2/src/repository.c +350 -467
  251. data/vendor/libgit2/src/repository.h +11 -10
  252. data/vendor/libgit2/src/reset.c +8 -5
  253. data/vendor/libgit2/src/revert.c +10 -10
  254. data/vendor/libgit2/src/revparse.c +48 -35
  255. data/vendor/libgit2/src/revwalk.c +7 -7
  256. data/vendor/libgit2/src/signature.c +12 -6
  257. data/vendor/libgit2/src/signature.h +1 -1
  258. data/vendor/libgit2/src/sortedcache.c +1 -1
  259. data/vendor/libgit2/src/sortedcache.h +1 -1
  260. data/vendor/libgit2/src/stash.c +36 -37
  261. data/vendor/libgit2/src/status.c +4 -1
  262. data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
  263. data/vendor/libgit2/src/str.h +357 -0
  264. data/vendor/libgit2/src/streams/mbedtls.c +8 -6
  265. data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
  266. data/vendor/libgit2/src/submodule.c +171 -159
  267. data/vendor/libgit2/src/submodule.h +1 -1
  268. data/vendor/libgit2/src/sysdir.c +68 -52
  269. data/vendor/libgit2/src/sysdir.h +15 -10
  270. data/vendor/libgit2/src/tag.c +29 -27
  271. data/vendor/libgit2/src/thread.h +3 -3
  272. data/vendor/libgit2/src/threadstate.c +3 -3
  273. data/vendor/libgit2/src/threadstate.h +1 -1
  274. data/vendor/libgit2/src/trace.c +1 -14
  275. data/vendor/libgit2/src/trace.h +5 -22
  276. data/vendor/libgit2/src/trailer.c +1 -1
  277. data/vendor/libgit2/src/transaction.c +1 -1
  278. data/vendor/libgit2/src/transport.c +10 -10
  279. data/vendor/libgit2/src/transports/auth.c +7 -9
  280. data/vendor/libgit2/src/transports/auth.h +2 -3
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
  283. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
  284. data/vendor/libgit2/src/transports/git.c +9 -11
  285. data/vendor/libgit2/src/transports/http.c +37 -17
  286. data/vendor/libgit2/src/transports/http.h +2 -3
  287. data/vendor/libgit2/src/transports/httpclient.c +65 -65
  288. data/vendor/libgit2/src/transports/local.c +124 -116
  289. data/vendor/libgit2/src/transports/smart.c +51 -139
  290. data/vendor/libgit2/src/transports/smart.h +25 -31
  291. data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
  292. data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
  293. data/vendor/libgit2/src/transports/ssh.c +47 -112
  294. data/vendor/libgit2/src/transports/winhttp.c +50 -56
  295. data/vendor/libgit2/src/tree-cache.c +5 -5
  296. data/vendor/libgit2/src/tree-cache.h +2 -2
  297. data/vendor/libgit2/src/tree.c +59 -48
  298. data/vendor/libgit2/src/tree.h +1 -1
  299. data/vendor/libgit2/src/unix/map.c +0 -2
  300. data/vendor/libgit2/src/unix/posix.h +1 -4
  301. data/vendor/libgit2/src/unix/realpath.c +0 -2
  302. data/vendor/libgit2/src/util.c +14 -14
  303. data/vendor/libgit2/src/util.h +2 -28
  304. data/vendor/libgit2/src/vector.h +1 -1
  305. data/vendor/libgit2/src/win32/findfile.c +172 -116
  306. data/vendor/libgit2/src/win32/findfile.h +7 -4
  307. data/vendor/libgit2/src/win32/path_w32.c +140 -9
  308. data/vendor/libgit2/src/win32/path_w32.h +2 -0
  309. data/vendor/libgit2/src/win32/posix.h +0 -1
  310. data/vendor/libgit2/src/win32/posix_w32.c +11 -27
  311. data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
  312. data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
  313. data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
  314. data/vendor/libgit2/src/worktree.c +116 -94
  315. data/vendor/libgit2/src/worktree.h +1 -1
  316. data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
  317. data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
  318. data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
  319. data/vendor/libgit2/src/xdiff/xemit.c +23 -7
  320. data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
  321. data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
  322. data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
  323. data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
  324. data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
  325. data/vendor/libgit2/src/xdiff/xutils.c +18 -7
  326. data/vendor/libgit2/src/zstream.c +5 -5
  327. data/vendor/libgit2/src/zstream.h +4 -4
  328. metadata +25 -10
  329. data/vendor/libgit2/src/buffer.h +0 -374
@@ -261,7 +261,7 @@ static int create_binary(
261
261
  const char *b_data,
262
262
  size_t b_datalen)
263
263
  {
264
- git_buf deflate = GIT_BUF_INIT, delta = GIT_BUF_INIT;
264
+ git_str deflate = GIT_STR_INIT, delta = GIT_STR_INIT;
265
265
  size_t delta_data_len = 0;
266
266
  int error;
267
267
 
@@ -302,18 +302,18 @@ static int create_binary(
302
302
  if (delta.size && delta.size < deflate.size) {
303
303
  *out_type = GIT_DIFF_BINARY_DELTA;
304
304
  *out_datalen = delta.size;
305
- *out_data = git_buf_detach(&delta);
305
+ *out_data = git_str_detach(&delta);
306
306
  *out_inflatedlen = delta_data_len;
307
307
  } else {
308
308
  *out_type = GIT_DIFF_BINARY_LITERAL;
309
309
  *out_datalen = deflate.size;
310
- *out_data = git_buf_detach(&deflate);
310
+ *out_data = git_str_detach(&deflate);
311
311
  *out_inflatedlen = b_datalen;
312
312
  }
313
313
 
314
314
  done:
315
- git_buf_dispose(&deflate);
316
- git_buf_dispose(&delta);
315
+ git_str_dispose(&deflate);
316
+ git_str_dispose(&delta);
317
317
 
318
318
  return error;
319
319
  }
@@ -750,18 +750,34 @@ git_diff_driver *git_patch_generated_driver(git_patch_generated *patch)
750
750
  return patch->ofile.driver;
751
751
  }
752
752
 
753
- void git_patch_generated_old_data(
754
- char **ptr, size_t *len, git_patch_generated *patch)
753
+ int git_patch_generated_old_data(
754
+ char **ptr, long *len, git_patch_generated *patch)
755
755
  {
756
+ if (patch->ofile.map.len > LONG_MAX ||
757
+ patch->ofile.map.len > GIT_XDIFF_MAX_SIZE) {
758
+ git_error_set(GIT_ERROR_INVALID, "files too large for diff");
759
+ return -1;
760
+ }
761
+
756
762
  *ptr = patch->ofile.map.data;
757
- *len = patch->ofile.map.len;
763
+ *len = (long)patch->ofile.map.len;
764
+
765
+ return 0;
758
766
  }
759
767
 
760
- void git_patch_generated_new_data(
761
- char **ptr, size_t *len, git_patch_generated *patch)
768
+ int git_patch_generated_new_data(
769
+ char **ptr, long *len, git_patch_generated *patch)
762
770
  {
771
+ if (patch->ofile.map.len > LONG_MAX ||
772
+ patch->ofile.map.len > GIT_XDIFF_MAX_SIZE) {
773
+ git_error_set(GIT_ERROR_INVALID, "files too large for diff");
774
+ return -1;
775
+ }
776
+
763
777
  *ptr = patch->nfile.map.data;
764
- *len = patch->nfile.map.len;
778
+ *len = (long)patch->nfile.map.len;
779
+
780
+ return 0;
765
781
  }
766
782
 
767
783
  static int patch_generated_file_cb(
@@ -21,7 +21,7 @@ enum {
21
21
  GIT_PATCH_GENERATED_DIFFABLE = (1 << 3),
22
22
  /* the difference between the two sides has been computed */
23
23
  GIT_PATCH_GENERATED_DIFFED = (1 << 4),
24
- GIT_PATCH_GENERATED_FLATTENED = (1 << 5),
24
+ GIT_PATCH_GENERATED_FLATTENED = (1 << 5)
25
25
  };
26
26
 
27
27
  struct git_patch_generated {
@@ -39,10 +39,10 @@ typedef struct git_patch_generated git_patch_generated;
39
39
 
40
40
  extern git_diff_driver *git_patch_generated_driver(git_patch_generated *);
41
41
 
42
- extern void git_patch_generated_old_data(
43
- char **, size_t *, git_patch_generated *);
44
- extern void git_patch_generated_new_data(
45
- char **, size_t *, git_patch_generated *);
42
+ extern int git_patch_generated_old_data(
43
+ char **, long *, git_patch_generated *);
44
+ extern int git_patch_generated_new_data(
45
+ char **, long *, git_patch_generated *);
46
46
  extern int git_patch_generated_from_diff(
47
47
  git_patch **, git_diff *, size_t);
48
48
 
@@ -10,7 +10,7 @@
10
10
  #include "git2/patch.h"
11
11
  #include "patch.h"
12
12
  #include "diff_parse.h"
13
- #include "path.h"
13
+ #include "fs_path.h"
14
14
 
15
15
  typedef struct {
16
16
  git_patch base;
@@ -65,22 +65,22 @@ static size_t header_path_len(git_patch_parse_ctx *ctx)
65
65
  return len;
66
66
  }
67
67
 
68
- static int parse_header_path_buf(git_buf *path, git_patch_parse_ctx *ctx, size_t path_len)
68
+ static int parse_header_path_buf(git_str *path, git_patch_parse_ctx *ctx, size_t path_len)
69
69
  {
70
70
  int error;
71
71
 
72
- if ((error = git_buf_put(path, ctx->parse_ctx.line, path_len)) < 0)
72
+ if ((error = git_str_put(path, ctx->parse_ctx.line, path_len)) < 0)
73
73
  return error;
74
74
 
75
75
  git_parse_advance_chars(&ctx->parse_ctx, path_len);
76
76
 
77
- git_buf_rtrim(path);
77
+ git_str_rtrim(path);
78
78
 
79
79
  if (path->size > 0 && path->ptr[0] == '"' &&
80
- (error = git_buf_unquote(path)) < 0)
80
+ (error = git_str_unquote(path)) < 0)
81
81
  return error;
82
82
 
83
- git_path_squash_slashes(path);
83
+ git_fs_path_squash_slashes(path);
84
84
 
85
85
  if (!path->size)
86
86
  return git_parse_err("patch contains empty path at line %"PRIuZ,
@@ -91,22 +91,22 @@ static int parse_header_path_buf(git_buf *path, git_patch_parse_ctx *ctx, size_t
91
91
 
92
92
  static int parse_header_path(char **out, git_patch_parse_ctx *ctx)
93
93
  {
94
- git_buf path = GIT_BUF_INIT;
94
+ git_str path = GIT_STR_INIT;
95
95
  int error;
96
96
 
97
97
  if ((error = parse_header_path_buf(&path, ctx, header_path_len(ctx))) < 0)
98
98
  goto out;
99
- *out = git_buf_detach(&path);
99
+ *out = git_str_detach(&path);
100
100
 
101
101
  out:
102
- git_buf_dispose(&path);
102
+ git_str_dispose(&path);
103
103
  return error;
104
104
  }
105
105
 
106
106
  static int parse_header_git_oldpath(
107
107
  git_patch_parsed *patch, git_patch_parse_ctx *ctx)
108
108
  {
109
- git_buf old_path = GIT_BUF_INIT;
109
+ git_str old_path = GIT_STR_INIT;
110
110
  int error;
111
111
 
112
112
  if (patch->old_path) {
@@ -118,17 +118,17 @@ static int parse_header_git_oldpath(
118
118
  if ((error = parse_header_path_buf(&old_path, ctx, ctx->parse_ctx.line_len - 1)) < 0)
119
119
  goto out;
120
120
 
121
- patch->old_path = git_buf_detach(&old_path);
121
+ patch->old_path = git_str_detach(&old_path);
122
122
 
123
123
  out:
124
- git_buf_dispose(&old_path);
124
+ git_str_dispose(&old_path);
125
125
  return error;
126
126
  }
127
127
 
128
128
  static int parse_header_git_newpath(
129
129
  git_patch_parsed *patch, git_patch_parse_ctx *ctx)
130
130
  {
131
- git_buf new_path = GIT_BUF_INIT;
131
+ git_str new_path = GIT_STR_INIT;
132
132
  int error;
133
133
 
134
134
  if (patch->new_path) {
@@ -139,10 +139,10 @@ static int parse_header_git_newpath(
139
139
 
140
140
  if ((error = parse_header_path_buf(&new_path, ctx, ctx->parse_ctx.line_len - 1)) < 0)
141
141
  goto out;
142
- patch->new_path = git_buf_detach(&new_path);
142
+ patch->new_path = git_str_detach(&new_path);
143
143
 
144
144
  out:
145
- git_buf_dispose(&new_path);
145
+ git_str_dispose(&new_path);
146
146
  return error;
147
147
  }
148
148
 
@@ -257,7 +257,7 @@ static int parse_header_rename(
257
257
  char **out,
258
258
  git_patch_parse_ctx *ctx)
259
259
  {
260
- git_buf path = GIT_BUF_INIT;
260
+ git_str path = GIT_STR_INIT;
261
261
 
262
262
  if (parse_header_path_buf(&path, ctx, header_path_len(ctx)) < 0)
263
263
  return -1;
@@ -265,7 +265,7 @@ static int parse_header_rename(
265
265
  /* Note: the `rename from` and `rename to` lines include the literal
266
266
  * filename. They do *not* include the prefix. (Who needs consistency?)
267
267
  */
268
- *out = git_buf_detach(&path);
268
+ *out = git_str_detach(&path);
269
269
  return 0;
270
270
  }
271
271
 
@@ -353,7 +353,7 @@ static int parse_header_start(git_patch_parsed *patch, git_patch_parse_ctx *ctx)
353
353
  * We cannot expect to be able to always parse paths correctly at this
354
354
  * point. Due to the possibility of unquoted names, whitespaces in
355
355
  * filenames and custom prefixes we have to allow that, though, and just
356
- * proceeed here. We then hope for the "---" and "+++" lines to fix that
356
+ * proceed here. We then hope for the "---" and "+++" lines to fix that
357
357
  * for us.
358
358
  */
359
359
  if (!git_parse_ctx_contains(&ctx->parse_ctx, "\n", 1) &&
@@ -382,7 +382,7 @@ typedef enum {
382
382
  STATE_RENAME,
383
383
  STATE_COPY,
384
384
 
385
- STATE_END,
385
+ STATE_END
386
386
  } parse_header_state;
387
387
 
388
388
  typedef struct {
@@ -766,7 +766,7 @@ static int parse_patch_binary_side(
766
766
  git_patch_parse_ctx *ctx)
767
767
  {
768
768
  git_diff_binary_t type = GIT_DIFF_BINARY_NONE;
769
- git_buf base85 = GIT_BUF_INIT, decoded = GIT_BUF_INIT;
769
+ git_str base85 = GIT_STR_INIT, decoded = GIT_STR_INIT;
770
770
  int64_t len;
771
771
  int error = 0;
772
772
 
@@ -815,7 +815,7 @@ static int parse_patch_binary_side(
815
815
  goto done;
816
816
  }
817
817
 
818
- if ((error = git_buf_decode_base85(
818
+ if ((error = git_str_decode_base85(
819
819
  &decoded, ctx->parse_ctx.line, encoded_len, decoded_len)) < 0)
820
820
  goto done;
821
821
 
@@ -835,11 +835,11 @@ static int parse_patch_binary_side(
835
835
  binary->type = type;
836
836
  binary->inflatedlen = (size_t)len;
837
837
  binary->datalen = decoded.size;
838
- binary->data = git_buf_detach(&decoded);
838
+ binary->data = git_str_detach(&decoded);
839
839
 
840
840
  done:
841
- git_buf_dispose(&base85);
842
- git_buf_dispose(&decoded);
841
+ git_str_dispose(&base85);
842
+ git_str_dispose(&decoded);
843
843
  return error;
844
844
  }
845
845