rugged 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/rugged_commit.c +1 -1
  3. data/lib/rugged/commit.rb +16 -2
  4. data/lib/rugged/version.rb +1 -1
  5. data/vendor/libgit2/CMakeLists.txt +31 -69
  6. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  7. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  8. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  9. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  10. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  11. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  12. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  13. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  14. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  15. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  16. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  23. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +25 -32
  24. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +20 -28
  25. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  26. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +6 -5
  27. data/vendor/libgit2/deps/ntlmclient/compat.h +8 -1
  28. data/vendor/libgit2/deps/ntlmclient/ntlm.c +8 -11
  29. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  30. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  31. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  32. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  33. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  34. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  35. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  36. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  37. data/vendor/libgit2/include/git2/blame.h +2 -0
  38. data/vendor/libgit2/include/git2/common.h +15 -3
  39. data/vendor/libgit2/include/git2/deprecated.h +42 -2
  40. data/vendor/libgit2/include/git2/errors.h +2 -1
  41. data/vendor/libgit2/include/git2/index.h +1 -2
  42. data/vendor/libgit2/include/git2/pack.h +1 -1
  43. data/vendor/libgit2/include/git2/strarray.h +6 -10
  44. data/vendor/libgit2/include/git2/version.h +4 -4
  45. data/vendor/libgit2/src/CMakeLists.txt +53 -41
  46. data/vendor/libgit2/src/apply.c +5 -1
  47. data/vendor/libgit2/src/assert_safe.h +58 -0
  48. data/vendor/libgit2/src/attr_file.c +8 -3
  49. data/vendor/libgit2/src/attrcache.c +2 -3
  50. data/vendor/libgit2/src/blame.c +2 -0
  51. data/vendor/libgit2/src/blame_git.c +6 -3
  52. data/vendor/libgit2/src/blob.c +2 -0
  53. data/vendor/libgit2/src/branch.c +19 -21
  54. data/vendor/libgit2/src/buffer.c +6 -3
  55. data/vendor/libgit2/src/cache.c +1 -22
  56. data/vendor/libgit2/src/checkout.c +49 -72
  57. data/vendor/libgit2/src/cherrypick.c +2 -0
  58. data/vendor/libgit2/src/clone.c +78 -18
  59. data/vendor/libgit2/src/common.h +1 -0
  60. data/vendor/libgit2/src/config.c +3 -7
  61. data/vendor/libgit2/src/config_entries.c +35 -27
  62. data/vendor/libgit2/src/config_parse.c +1 -1
  63. data/vendor/libgit2/src/config_snapshot.c +2 -1
  64. data/vendor/libgit2/src/describe.c +5 -1
  65. data/vendor/libgit2/src/diff.c +12 -11
  66. data/vendor/libgit2/src/diff_file.c +3 -1
  67. data/vendor/libgit2/src/diff_generate.c +10 -11
  68. data/vendor/libgit2/src/diff_parse.c +2 -3
  69. data/vendor/libgit2/src/diff_print.c +63 -60
  70. data/vendor/libgit2/src/diff_stats.c +12 -11
  71. data/vendor/libgit2/src/diff_tform.c +2 -3
  72. data/vendor/libgit2/src/errors.c +2 -0
  73. data/vendor/libgit2/src/fetch.c +2 -0
  74. data/vendor/libgit2/src/filter.c +3 -3
  75. data/vendor/libgit2/src/futils.c +3 -3
  76. data/vendor/libgit2/src/futils.h +3 -3
  77. data/vendor/libgit2/src/global.c +3 -1
  78. data/vendor/libgit2/src/idxmap.c +0 -22
  79. data/vendor/libgit2/src/index.c +12 -7
  80. data/vendor/libgit2/src/indexer.c +10 -4
  81. data/vendor/libgit2/src/iterator.c +4 -4
  82. data/vendor/libgit2/src/merge.c +13 -7
  83. data/vendor/libgit2/src/merge_file.c +4 -6
  84. data/vendor/libgit2/src/midx.c +418 -0
  85. data/vendor/libgit2/src/midx.h +83 -0
  86. data/vendor/libgit2/src/mwindow.c +124 -51
  87. data/vendor/libgit2/src/net.c +6 -1
  88. data/vendor/libgit2/src/object.c +2 -1
  89. data/vendor/libgit2/src/odb.c +9 -6
  90. data/vendor/libgit2/src/odb_loose.c +3 -3
  91. data/vendor/libgit2/src/odb_mempack.c +2 -0
  92. data/vendor/libgit2/src/oid.c +2 -0
  93. data/vendor/libgit2/src/pack-objects.c +29 -21
  94. data/vendor/libgit2/src/pack.c +47 -28
  95. data/vendor/libgit2/src/pack.h +19 -2
  96. data/vendor/libgit2/src/patch_generate.c +1 -3
  97. data/vendor/libgit2/src/patch_parse.c +4 -2
  98. data/vendor/libgit2/src/path.c +4 -4
  99. data/vendor/libgit2/src/pathspec.c +4 -3
  100. data/vendor/libgit2/src/pool.c +21 -15
  101. data/vendor/libgit2/src/pool.h +9 -1
  102. data/vendor/libgit2/src/proxy.c +2 -0
  103. data/vendor/libgit2/src/push.c +2 -0
  104. data/vendor/libgit2/src/rebase.c +2 -0
  105. data/vendor/libgit2/src/refdb.c +135 -0
  106. data/vendor/libgit2/src/refdb.h +69 -0
  107. data/vendor/libgit2/src/refdb_fs.c +19 -81
  108. data/vendor/libgit2/src/reflog.c +2 -6
  109. data/vendor/libgit2/src/refs.c +60 -188
  110. data/vendor/libgit2/src/refs.h +1 -19
  111. data/vendor/libgit2/src/regexp.c +2 -2
  112. data/vendor/libgit2/src/remote.c +32 -17
  113. data/vendor/libgit2/src/repository.c +168 -79
  114. data/vendor/libgit2/src/repository.h +10 -27
  115. data/vendor/libgit2/src/revert.c +2 -0
  116. data/vendor/libgit2/src/revparse.c +5 -4
  117. data/vendor/libgit2/src/revwalk.c +3 -5
  118. data/vendor/libgit2/src/settings.c +9 -0
  119. data/vendor/libgit2/src/sortedcache.c +2 -3
  120. data/vendor/libgit2/src/stash.c +2 -0
  121. data/vendor/libgit2/src/status.c +2 -0
  122. data/vendor/libgit2/src/strarray.c +63 -0
  123. data/vendor/libgit2/src/streams/openssl.c +12 -6
  124. data/vendor/libgit2/src/streams/registry.c +5 -3
  125. data/vendor/libgit2/src/submodule.c +6 -4
  126. data/vendor/libgit2/src/sysdir.c +4 -20
  127. data/vendor/libgit2/src/sysdir.h +0 -11
  128. data/vendor/libgit2/src/tag.c +2 -0
  129. data/vendor/libgit2/src/thread-utils.h +139 -21
  130. data/vendor/libgit2/src/transaction.c +2 -1
  131. data/vendor/libgit2/src/transports/credential.c +2 -0
  132. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  133. data/vendor/libgit2/src/transports/httpclient.c +6 -8
  134. data/vendor/libgit2/src/transports/local.c +2 -2
  135. data/vendor/libgit2/src/transports/smart.c +2 -2
  136. data/vendor/libgit2/src/transports/winhttp.c +18 -7
  137. data/vendor/libgit2/src/unix/posix.h +13 -1
  138. data/vendor/libgit2/src/util.c +25 -58
  139. data/vendor/libgit2/src/util.h +2 -2
  140. data/vendor/libgit2/src/win32/git2.rc +18 -3
  141. data/vendor/libgit2/src/win32/path_w32.c +2 -2
  142. data/vendor/libgit2/src/worktree.c +4 -0
  143. metadata +27 -25
  144. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  145. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  146. data/vendor/libgit2/src/refdb_fs.h +0 -19
@@ -1,5 +1,6 @@
1
- FILE(GLOB SRC_HTTP "*.c" "*.h")
1
+ file(GLOB SRC_HTTP "*.c" "*.h")
2
+ list(SORT SRC_HTTP)
2
3
 
3
- ADD_LIBRARY(http-parser OBJECT ${SRC_HTTP})
4
+ add_library(http-parser OBJECT ${SRC_HTTP})
4
5
 
5
- ENABLE_WARNINGS(implicit-fallthrough=1)
6
+ enable_warnings(implicit-fallthrough=1)
@@ -1,23 +1,24 @@
1
1
  FILE(GLOB SRC_NTLMCLIENT "ntlm.c" "unicode_builtin.c" "util.c")
2
+ LIST(SORT SRC_NTLMCLIENT)
2
3
 
3
4
  ADD_DEFINITIONS(-DNTLM_STATIC=1)
4
5
 
5
6
  DISABLE_WARNINGS(implicit-fallthrough)
6
7
 
7
- IF (HTTPS_BACKEND STREQUAL "SecureTransport")
8
+ IF(USE_HTTPS STREQUAL "SecureTransport")
8
9
  ADD_DEFINITIONS(-DCRYPT_COMMONCRYPTO)
9
10
  SET(SRC_NTLMCLIENT_CRYPTO "crypt_commoncrypto.c")
10
11
  # CC_MD4 has been deprecated in macOS 10.15.
11
12
  SET_SOURCE_FILES_PROPERTIES("crypt_commoncrypto.c" COMPILE_FLAGS "-Wno-deprecated")
12
- ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL")
13
+ ELSEIF(USE_HTTPS STREQUAL "OpenSSL")
13
14
  ADD_DEFINITIONS(-DCRYPT_OPENSSL)
14
15
  INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
15
16
  SET(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c")
16
- ELSEIF (HTTPS_BACKEND STREQUAL "mbedTLS")
17
+ ELSEIF(USE_HTTPS STREQUAL "mbedTLS")
17
18
  ADD_DEFINITIONS(-DCRYPT_MBEDTLS)
18
19
  SET(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c")
19
- ELSE ()
20
- MESSAGE(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${HTTPS_BACKEND}) for NTLM crypto")
20
+ ELSE()
21
+ MESSAGE(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${USE_HTTPS}) for NTLM crypto")
21
22
  ENDIF()
22
23
 
23
24
  ADD_LIBRARY(ntlmclient OBJECT ${SRC_NTLMCLIENT} ${SRC_NTLMCLIENT_CRYPTO})
@@ -21,7 +21,9 @@
21
21
  # include <stdbool.h>
22
22
  #endif
23
23
 
24
- #ifdef __linux__
24
+ #if defined(_WIN32) || defined(__APPLE__)
25
+ /* winsock and macOS > 10.9 have htonll already */
26
+ #elif defined(__linux__)
25
27
  /* See man page endian(3) */
26
28
  # include <endian.h>
27
29
  # define htonll htobe64
@@ -46,6 +48,11 @@
46
48
  # define htonll(x) ((((uint64_t)htonl(x)) << 32) + htonl((uint64_t)(x) >> 32))
47
49
  # endif
48
50
  # endif
51
+ #elif defined(__HAIKU__)
52
+ # include <ByteOrder.h>
53
+ # define htonll B_HOST_TO_BENDIAN_INT64
54
+ #else
55
+ # error "Please implement htonll for your platform"
49
56
  #endif
50
57
 
51
58
  #ifndef MIN
@@ -47,11 +47,9 @@ ntlm_client *ntlm_client_init(ntlm_client_flags flags)
47
47
  {
48
48
  ntlm_client *ntlm = NULL;
49
49
 
50
- if ((ntlm = malloc(sizeof(ntlm_client))) == NULL)
50
+ if ((ntlm = calloc(1, sizeof(ntlm_client))) == NULL)
51
51
  return NULL;
52
52
 
53
- memset(ntlm, 0, sizeof(ntlm_client));
54
-
55
53
  ntlm->flags = flags;
56
54
 
57
55
  if ((ntlm->hmac_ctx = ntlm_hmac_ctx_init()) == NULL ||
@@ -260,6 +258,9 @@ static inline bool write_buf(
260
258
  const unsigned char *buf,
261
259
  size_t len)
262
260
  {
261
+ if (!len)
262
+ return true;
263
+
263
264
  if (out->len - out->pos < len) {
264
265
  ntlm_client_set_errmsg(ntlm, "out of buffer space");
265
266
  return false;
@@ -648,13 +649,11 @@ int ntlm_client_negotiate(
648
649
  return -1;
649
650
  }
650
651
 
651
- if ((ntlm->negotiate.buf = malloc(ntlm->negotiate.len)) == NULL) {
652
+ if ((ntlm->negotiate.buf = calloc(1, ntlm->negotiate.len)) == NULL) {
652
653
  ntlm_client_set_errmsg(ntlm, "out of memory");
653
654
  return -1;
654
655
  }
655
656
 
656
- memset(ntlm->negotiate.buf, 0, ntlm->negotiate.len);
657
-
658
657
  if (!write_buf(ntlm, &ntlm->negotiate,
659
658
  ntlm_client_signature, sizeof(ntlm_client_signature)) ||
660
659
  !write_int32(ntlm, &ntlm->negotiate, 1) ||
@@ -1122,7 +1121,7 @@ static bool generate_ntlm2_challengehash(
1122
1121
  static bool generate_lm2_response(ntlm_client *ntlm,
1123
1122
  unsigned char ntlm2_hash[NTLM_NTLM2_HASH_LEN])
1124
1123
  {
1125
- unsigned char lm2_challengehash[16];
1124
+ unsigned char lm2_challengehash[16] = {0};
1126
1125
  size_t lm2_len = 16;
1127
1126
  uint64_t local_nonce;
1128
1127
 
@@ -1177,7 +1176,7 @@ static bool generate_ntlm2_response(ntlm_client *ntlm)
1177
1176
  uint32_t signature;
1178
1177
  uint64_t timestamp, nonce;
1179
1178
  unsigned char ntlm2_hash[NTLM_NTLM2_HASH_LEN];
1180
- unsigned char challengehash[16];
1179
+ unsigned char challengehash[16] = {0};
1181
1180
  unsigned char *blob;
1182
1181
 
1183
1182
  if (!generate_timestamp(ntlm) ||
@@ -1334,13 +1333,11 @@ int ntlm_client_response(
1334
1333
  return -1;
1335
1334
  }
1336
1335
 
1337
- if ((ntlm->response.buf = malloc(ntlm->response.len)) == NULL) {
1336
+ if ((ntlm->response.buf = calloc(1, ntlm->response.len)) == NULL) {
1338
1337
  ntlm_client_set_errmsg(ntlm, "out of memory");
1339
1338
  return -1;
1340
1339
  }
1341
1340
 
1342
- memset(ntlm->response.buf, 0, ntlm->response.len);
1343
-
1344
1341
  if (!write_buf(ntlm, &ntlm->response,
1345
1342
  ntlm_client_signature, sizeof(ntlm_client_signature)) ||
1346
1343
  !write_int32(ntlm, &ntlm->response, 3) ||
@@ -0,0 +1,93 @@
1
+ PCRE LICENCE
2
+ ------------
3
+
4
+ PCRE is a library of functions to support regular expressions whose syntax
5
+ and semantics are as close as possible to those of the Perl 5 language.
6
+
7
+ Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
8
+ specified below. The documentation for PCRE, supplied in the "doc"
9
+ directory, is distributed under the same terms as the software itself. The data
10
+ in the testdata directory is not copyrighted and is in the public domain.
11
+
12
+ The basic library functions are written in C and are freestanding. Also
13
+ included in the distribution is a set of C++ wrapper functions, and a
14
+ just-in-time compiler that can be used to optimize pattern matching. These
15
+ are both optional features that can be omitted when the library is built.
16
+
17
+
18
+ THE BASIC LIBRARY FUNCTIONS
19
+ ---------------------------
20
+
21
+ Written by: Philip Hazel
22
+ Email local part: ph10
23
+ Email domain: cam.ac.uk
24
+
25
+ University of Cambridge Computing Service,
26
+ Cambridge, England.
27
+
28
+ Copyright (c) 1997-2020 University of Cambridge
29
+ All rights reserved.
30
+
31
+
32
+ PCRE JUST-IN-TIME COMPILATION SUPPORT
33
+ -------------------------------------
34
+
35
+ Written by: Zoltan Herczeg
36
+ Email local part: hzmester
37
+ Email domain: freemail.hu
38
+
39
+ Copyright(c) 2010-2020 Zoltan Herczeg
40
+ All rights reserved.
41
+
42
+
43
+ STACK-LESS JUST-IN-TIME COMPILER
44
+ --------------------------------
45
+
46
+ Written by: Zoltan Herczeg
47
+ Email local part: hzmester
48
+ Email domain: freemail.hu
49
+
50
+ Copyright(c) 2009-2020 Zoltan Herczeg
51
+ All rights reserved.
52
+
53
+
54
+ THE C++ WRAPPER FUNCTIONS
55
+ -------------------------
56
+
57
+ Contributed by: Google Inc.
58
+
59
+ Copyright (c) 2007-2012, Google Inc.
60
+ All rights reserved.
61
+
62
+
63
+ THE "BSD" LICENCE
64
+ -----------------
65
+
66
+ Redistribution and use in source and binary forms, with or without
67
+ modification, are permitted provided that the following conditions are met:
68
+
69
+ * Redistributions of source code must retain the above copyright notice,
70
+ this list of conditions and the following disclaimer.
71
+
72
+ * Redistributions in binary form must reproduce the above copyright
73
+ notice, this list of conditions and the following disclaimer in the
74
+ documentation and/or other materials provided with the distribution.
75
+
76
+ * Neither the name of the University of Cambridge nor the name of Google
77
+ Inc. nor the names of their contributors may be used to endorse or
78
+ promote products derived from this software without specific prior
79
+ written permission.
80
+
81
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
82
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
83
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
84
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
85
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
86
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
87
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
88
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
89
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
90
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
91
+ POSSIBILITY OF SUCH DAMAGE.
92
+
93
+ End
@@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
42
42
  /* The current PCRE version information. */
43
43
 
44
44
  #define PCRE_MAJOR 8
45
- #define PCRE_MINOR 42
45
+ #define PCRE_MINOR 44
46
46
  #define PCRE_PRERELEASE
47
- #define PCRE_DATE 2018-03-20
47
+ #define PCRE_DATE 2020-02-12
48
48
 
49
49
  #define PCRE_EXP_DECL extern
50
50
 
@@ -6,7 +6,7 @@
6
6
  and semantics are as close as possible to those of the Perl 5 language.
7
7
 
8
8
  Written by Philip Hazel
9
- Copyright (c) 1997-2016 University of Cambridge
9
+ Copyright (c) 1997-2020 University of Cambridge
10
10
 
11
11
  -----------------------------------------------------------------------------
12
12
  Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,7 @@ COMPILE_PCREx macro will already be appropriately set. */
68
68
 
69
69
  /* Macro for setting individual bits in class bitmaps. */
70
70
 
71
- #define SETBIT(a,b) a[(b)/8] |= (1 << ((b)&7))
71
+ #define SETBIT(a,b) a[(b)/8] |= (1U << ((b)&7))
72
72
 
73
73
  /* Maximum length value to check against when making sure that the integer that
74
74
  holds the compiled pattern length does not overflow. We make it a bit less than
@@ -129,8 +129,8 @@ overrun before it actually does run off the end of the data block. */
129
129
 
130
130
  /* Private flags added to firstchar and reqchar. */
131
131
 
132
- #define REQ_CASELESS (1 << 0) /* Indicates caselessness */
133
- #define REQ_VARY (1 << 1) /* Reqchar followed non-literal item */
132
+ #define REQ_CASELESS (1U << 0) /* Indicates caselessness */
133
+ #define REQ_VARY (1U << 1) /* Reqchar followed non-literal item */
134
134
  /* Negative values for the firstchar and reqchar flags */
135
135
  #define REQ_UNSET (-2)
136
136
  #define REQ_NONE (-1)
@@ -3299,7 +3299,7 @@ for(;;)
3299
3299
  if ((*xclass_flags & XCL_MAP) == 0)
3300
3300
  {
3301
3301
  /* No bits are set for characters < 256. */
3302
- if (list[1] == 0) return TRUE;
3302
+ if (list[1] == 0) return (*xclass_flags & XCL_NOT) == 0;
3303
3303
  /* Might be an empty repeat. */
3304
3304
  continue;
3305
3305
  }
@@ -3611,7 +3611,7 @@ for(;;)
3611
3611
  if (chr > 255) break;
3612
3612
  class_bitset = (pcre_uint8 *)
3613
3613
  ((list_ptr == list ? code : base_end) - list_ptr[2]);
3614
- if ((class_bitset[chr >> 3] & (1 << (chr & 7))) != 0) return FALSE;
3614
+ if ((class_bitset[chr >> 3] & (1U << (chr & 7))) != 0) return FALSE;
3615
3615
  break;
3616
3616
 
3617
3617
  #if defined SUPPORT_UTF || !defined COMPILE_PCRE8
@@ -7135,17 +7135,19 @@ for (;; ptr++)
7135
7135
  int n = 0;
7136
7136
  ptr++;
7137
7137
  while(IS_DIGIT(*ptr))
7138
+ {
7138
7139
  n = n * 10 + *ptr++ - CHAR_0;
7140
+ if (n > 255)
7141
+ {
7142
+ *errorcodeptr = ERR38;
7143
+ goto FAILED;
7144
+ }
7145
+ }
7139
7146
  if (*ptr != CHAR_RIGHT_PARENTHESIS)
7140
7147
  {
7141
7148
  *errorcodeptr = ERR39;
7142
7149
  goto FAILED;
7143
7150
  }
7144
- if (n > 255)
7145
- {
7146
- *errorcodeptr = ERR38;
7147
- goto FAILED;
7148
- }
7149
7151
  *code++ = n;
7150
7152
  PUT(code, 0, (int)(ptr - cd->start_pattern + 1)); /* Pattern offset */
7151
7153
  PUT(code, LINK_SIZE, 0); /* Default length */
@@ -7461,7 +7463,7 @@ for (;; ptr++)
7461
7463
  {
7462
7464
  open_capitem *oc;
7463
7465
  recno = GET2(slot, 0);
7464
- cd->backref_map |= (recno < 32)? (1 << recno) : 1;
7466
+ cd->backref_map |= (recno < 32)? (1U << recno) : 1;
7465
7467
  if (recno > cd->top_backref) cd->top_backref = recno;
7466
7468
 
7467
7469
  /* Check to see if this back reference is recursive, that it, it
@@ -7647,6 +7649,8 @@ for (;; ptr++)
7647
7649
  /* Can't determine a first byte now */
7648
7650
 
7649
7651
  if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE;
7652
+ zerofirstchar = firstchar;
7653
+ zerofirstcharflags = firstcharflags;
7650
7654
  continue;
7651
7655
 
7652
7656
 
@@ -8070,7 +8074,7 @@ for (;; ptr++)
8070
8074
  item_hwm_offset = cd->hwm - cd->start_workspace;
8071
8075
  *code++ = ((options & PCRE_CASELESS) != 0)? OP_REFI : OP_REF;
8072
8076
  PUT2INC(code, 0, recno);
8073
- cd->backref_map |= (recno < 32)? (1 << recno) : 1;
8077
+ cd->backref_map |= (recno < 32)? (1U << recno) : 1;
8074
8078
  if (recno > cd->top_backref) cd->top_backref = recno;
8075
8079
 
8076
8080
  /* Check to see if this back reference is recursive, that it, it
@@ -8683,14 +8687,22 @@ do {
8683
8687
  op == OP_SCBRA || op == OP_SCBRAPOS)
8684
8688
  {
8685
8689
  int n = GET2(scode, 1+LINK_SIZE);
8686
- int new_map = bracket_map | ((n < 32)? (1 << n) : 1);
8690
+ int new_map = bracket_map | ((n < 32)? (1U << n) : 1);
8687
8691
  if (!is_anchored(scode, new_map, cd, atomcount)) return FALSE;
8688
8692
  }
8689
8693
 
8690
- /* Positive forward assertions and conditions */
8694
+ /* Positive forward assertion */
8695
+
8696
+ else if (op == OP_ASSERT)
8697
+ {
8698
+ if (!is_anchored(scode, bracket_map, cd, atomcount)) return FALSE;
8699
+ }
8700
+
8701
+ /* Condition; not anchored if no second branch */
8691
8702
 
8692
- else if (op == OP_ASSERT || op == OP_COND)
8703
+ else if (op == OP_COND)
8693
8704
  {
8705
+ if (scode[GET(scode,1)] != OP_ALT) return FALSE;
8694
8706
  if (!is_anchored(scode, bracket_map, cd, atomcount)) return FALSE;
8695
8707
  }
8696
8708
 
@@ -8803,7 +8815,7 @@ do {
8803
8815
  op == OP_SCBRA || op == OP_SCBRAPOS)
8804
8816
  {
8805
8817
  int n = GET2(scode, 1+LINK_SIZE);
8806
- int new_map = bracket_map | ((n < 32)? (1 << n) : 1);
8818
+ int new_map = bracket_map | ((n < 32)? (1U << n) : 1);
8807
8819
  if (!is_startline(scode, new_map, cd, atomcount, inassert)) return FALSE;
8808
8820
  }
8809
8821
 
@@ -3938,10 +3938,10 @@ static sljit_s32 character_to_int32(pcre_uchar chr)
3938
3938
  sljit_s32 value = (sljit_s32)chr;
3939
3939
  #if defined COMPILE_PCRE8
3940
3940
  #define SSE2_COMPARE_TYPE_INDEX 0
3941
- return (value << 24) | (value << 16) | (value << 8) | value;
3941
+ return ((unsigned int)value << 24) | ((unsigned int)value << 16) | ((unsigned int)value << 8) | (unsigned int)value;
3942
3942
  #elif defined COMPILE_PCRE16
3943
3943
  #define SSE2_COMPARE_TYPE_INDEX 1
3944
- return (value << 16) | value;
3944
+ return ((unsigned int)value << 16) | value;
3945
3945
  #elif defined COMPILE_PCRE32
3946
3946
  #define SSE2_COMPARE_TYPE_INDEX 2
3947
3947
  return value;
@@ -8507,7 +8507,7 @@ if (opcode == OP_ONCE)
8507
8507
  /* We temporarily encode the needs_control_head in the lowest bit.
8508
8508
  Note: on the target architectures of SLJIT the ((x << 1) >> 1) returns
8509
8509
  the same value for small signed numbers (including negative numbers). */
8510
- BACKTRACK_AS(bracket_backtrack)->u.framesize = (BACKTRACK_AS(bracket_backtrack)->u.framesize << 1) | (needs_control_head ? 1 : 0);
8510
+ BACKTRACK_AS(bracket_backtrack)->u.framesize = ((unsigned int)BACKTRACK_AS(bracket_backtrack)->u.framesize << 1) | (needs_control_head ? 1 : 0);
8511
8511
  }
8512
8512
  return cc + repeat_length;
8513
8513
  }
@@ -9002,7 +9002,7 @@ if (exact > 1)
9002
9002
  #ifdef SUPPORT_UTF
9003
9003
  && !common->utf
9004
9004
  #endif
9005
- )
9005
+ && type != OP_ANYNL && type != OP_EXTUNI)
9006
9006
  {
9007
9007
  OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(exact));
9008
9008
  add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_GREATER, TMP1, 0, STR_END, 0));
@@ -6,7 +6,7 @@
6
6
  and semantics are as close as possible to those of the Perl 5 language.
7
7
 
8
8
  Written by Philip Hazel
9
- Copyright (c) 1997-2018 University of Cambridge
9
+ Copyright (c) 1997-2020 University of Cambridge
10
10
 
11
11
  -----------------------------------------------------------------------------
12
12
  Redistribution and use in source and binary forms, with or without
@@ -287,6 +287,7 @@ if (preg->re_pcre == NULL)
287
287
  (void)pcre_fullinfo((const pcre *)preg->re_pcre, NULL, PCRE_INFO_CAPTURECOUNT,
288
288
  &re_nsub);
289
289
  preg->re_nsub = (size_t)re_nsub;
290
+ preg->re_erroffset = (size_t)(-1); /* No meaning after successful compile */
290
291
  return 0;
291
292
  }
292
293
 
@@ -324,8 +325,6 @@ if ((eflags & PCRE_REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
324
325
  if ((eflags & PCRE_REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
325
326
  if ((eflags & PCRE_REG_NOTEMPTY) != 0) options |= PCRE_NOTEMPTY;
326
327
 
327
- ((pcre_regex_t *)preg)->re_erroffset = (size_t)(-1); /* Only has meaning after compile */
328
-
329
328
  /* When no string data is being returned, or no vector has been passed in which
330
329
  to put it, ensure that nmatch is zero. Otherwise, ensure the vector for holding
331
330
  the return data is large enough. */
@@ -1,5 +1,6 @@
1
- DISABLE_WARNINGS(implicit-fallthrough)
2
- ADD_DEFINITIONS(-DNO_VIZ -DSTDC -DNO_GZIP)
3
- FILE(GLOB SRC_ZLIB "*.c" "*.h")
4
- INCLUDE_DIRECTORIES(".")
5
- ADD_LIBRARY(zlib OBJECT ${SRC_ZLIB})
1
+ disable_warnings(implicit-fallthrough)
2
+ add_definitions(-DNO_VIZ -DSTDC -DNO_GZIP)
3
+ file(GLOB SRC_ZLIB "*.c" "*.h")
4
+ list(SORT SRC_ZLIB)
5
+ include_directories(".")
6
+ add_library(zlib OBJECT ${SRC_ZLIB})
@@ -320,6 +320,7 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
320
320
 
321
321
  s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
322
322
  s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
323
+ memset(s->prev, 0, s->w_size * sizeof(Pos));
323
324
  s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
324
325
 
325
326
  s->high_water = 0; /* nothing written to s->window yet */
@@ -78,7 +78,7 @@ GIT_EXTERN(int) git_annotated_commit_lookup(
78
78
  const git_oid *id);
79
79
 
80
80
  /**
81
- * Creates a `git_annotated_comit` from a revision string.
81
+ * Creates a `git_annotated_commit` from a revision string.
82
82
  *
83
83
  * See `man gitrevisions`, or
84
84
  * http://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for