Skip to content

Commit 8de06fe

Browse files
authored
Merge pull request #1985 from Altinity/rebase-cicd-v26.3.16.16-lts
Stable 26.3 - Rebase to v26.3.16.16 lts
2 parents 921dcf5 + 1e336a6 commit 8de06fe

335 files changed

Lines changed: 29536 additions & 18136 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/master.yml

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5727,25 +5727,6 @@ jobs:
57275727
timeout_minutes: 210
57285728
workflow_config: ${{ needs.config_workflow.outputs.data }}
57295729

5730-
SignRelease:
5731-
needs: [config_workflow, build_amd_release]
5732-
if: ${{ !failure() && !cancelled() }}
5733-
uses: ./.github/workflows/reusable_sign.yml
5734-
secrets: inherit
5735-
with:
5736-
test_name: Sign release
5737-
runner_type: altinity-style-checker
5738-
data: ${{ needs.config_workflow.outputs.data }}
5739-
SignAarch64:
5740-
needs: [config_workflow, build_arm_release]
5741-
if: ${{ !failure() && !cancelled() }}
5742-
uses: ./.github/workflows/reusable_sign.yml
5743-
secrets: inherit
5744-
with:
5745-
test_name: Sign aarch64
5746-
runner_type: altinity-style-checker-aarch64
5747-
data: ${{ needs.config_workflow.outputs.data }}
5748-
57495730
FinishCIReport:
57505731
if: ${{ !cancelled() && needs.config_workflow.outputs.pipeline_status != '' }}
57515732
needs:
@@ -5870,8 +5851,6 @@ jobs:
58705851
- GrypeScanKeeper
58715852
- RegressionTestsRelease
58725853
- RegressionTestsAarch64
5873-
- SignRelease
5874-
- SignAarch64
58755854
runs-on: [self-hosted, altinity-on-demand, altinity-style-checker-aarch64]
58765855
steps:
58775856
- name: Check out repository code

base/poco/JSON/include/Poco/JSON/ParserImpl.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ namespace JSON
4343
static const std::size_t JSON_PARSE_BUFFER_SIZE = 4096;
4444
static const std::size_t JSON_PARSER_STACK_SIZE = 128;
4545
static const int JSON_UNLIMITED_DEPTH = -1;
46+
/// Default nesting limit so that parsing untrusted JSON cannot overflow the native stack via
47+
/// Poco's recursive descent. Far above any legitimate JSON; raise per-parser with setDepth.
48+
static const int JSON_DEFAULT_DEPTH = 1000;
4649

4750
ParserImpl(const Handler::Ptr & pHandler = new ParseHandler, std::size_t bufSize = JSON_PARSE_BUFFER_SIZE);
4851
/// Creates JSON ParserImpl, using the given Handler and buffer size.
@@ -109,6 +112,7 @@ namespace JSON
109112
struct json_stream * _pJSON;
110113
Handler::Ptr _pHandler;
111114
int _depth;
115+
int _currentDepth = 0;
112116
char _decimalPoint;
113117
bool _allowNullByte;
114118
bool _allowComments;

base/poco/JSON/src/ParserImpl.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ namespace JSON {
3737
ParserImpl::ParserImpl(const Handler::Ptr& pHandler, std::size_t bufSize):
3838
_pJSON(new json_stream),
3939
_pHandler(pHandler),
40-
_depth(JSON_UNLIMITED_DEPTH),
40+
_depth(JSON_DEFAULT_DEPTH),
4141
_decimalPoint('.'),
4242
_allowNullByte(true),
4343
_allowComments(false)
@@ -53,6 +53,7 @@ ParserImpl::~ParserImpl()
5353

5454
void ParserImpl::handle(const std::string& json)
5555
{
56+
_currentDepth = 0;
5657
if (!_allowNullByte && json.find("\\u0000") != json.npos)
5758
throw JSONException("Null bytes in strings not allowed.");
5859

@@ -139,6 +140,12 @@ void ParserImpl::stripComments(std::string& json)
139140

140141
void ParserImpl::handleArray()
141142
{
143+
// Enforce the configured depth limit (set via setDepth) to avoid a native-stack
144+
// overflow on deeply nested input. _depth == JSON_UNLIMITED_DEPTH (-1) means no limit.
145+
if (_depth != JSON_UNLIMITED_DEPTH && _currentDepth >= _depth)
146+
throw JSONException("Maximum allowed JSON depth exceeded");
147+
++_currentDepth;
148+
142149
json_type tok = json_peek(_pJSON);
143150
while (tok != JSON_ARRAY_END && checkError())
144151
{
@@ -148,11 +155,17 @@ void ParserImpl::handleArray()
148155

149156
if (tok == JSON_ARRAY_END) handle();
150157
else throw JSONException("JSON array end not found");
158+
159+
--_currentDepth;
151160
}
152161

153162

154163
void ParserImpl::handleObject()
155164
{
165+
if (_depth != JSON_UNLIMITED_DEPTH && _currentDepth >= _depth)
166+
throw JSONException("Maximum allowed JSON depth exceeded");
167+
++_currentDepth;
168+
156169
json_type tok = json_peek(_pJSON);
157170
while (tok != JSON_OBJECT_END && checkError())
158171
{
@@ -166,6 +179,8 @@ void ParserImpl::handleObject()
166179

167180
if (tok == JSON_OBJECT_END) handle();
168181
else throw JSONException("JSON object end not found");
182+
183+
--_currentDepth;
169184
}
170185

171186

ci/workflows/master.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
additional_jobs=[
6666
"GrypeScan",
6767
"Regression",
68-
"SignRelease",
6968
"CIReport",
7069
"SourceUpload",
7170
],

cmake/autogenerated_versions.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
# NOTE: VERSION_REVISION has nothing common with DBMS_TCP_PROTOCOL_VERSION,
44
# only DBMS_TCP_PROTOCOL_VERSION should be incremented on protocol changes.
5-
SET(VERSION_REVISION 54520)
5+
SET(VERSION_REVISION 54523)
66
SET(VERSION_MAJOR 26)
77
SET(VERSION_MINOR 3)
8-
SET(VERSION_PATCH 13)
9-
SET(VERSION_GITHASH d23c7536b980c34b39c850b08ef23c509f06aaaa)
10-
SET(VERSION_DESCRIBE v26.3.13.10001.altinitytest)
11-
SET(VERSION_STRING 26.3.13.10001.altinitytest)
8+
SET(VERSION_PATCH 16)
9+
SET(VERSION_GITHASH 3c767441a1ed9b5828b94806d87a25501d1f7364)
10+
SET(VERSION_DESCRIBE v26.3.16.10001.altinitytest)
11+
SET(VERSION_STRING 26.3.16.10001.altinitytest)
1212
# end of autochange
1313

1414
SET(VERSION_TWEAK 10001)

contrib/avro

contrib/curl

Submodule curl updated 971 files

contrib/curl-cmake/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ set (SRCS
1515
"${LIBRARY_DIR}/lib/asyn-thrdd.c"
1616
"${LIBRARY_DIR}/lib/bufq.c"
1717
"${LIBRARY_DIR}/lib/bufref.c"
18+
"${LIBRARY_DIR}/lib/cf-dns.c"
1819
"${LIBRARY_DIR}/lib/cf-h1-proxy.c"
1920
"${LIBRARY_DIR}/lib/cf-h2-proxy.c"
2021
"${LIBRARY_DIR}/lib/cf-haproxy.c"
@@ -37,7 +38,6 @@ set (SRCS
3738
"${LIBRARY_DIR}/lib/curl_memrchr.c"
3839
"${LIBRARY_DIR}/lib/curl_ntlm_core.c"
3940
"${LIBRARY_DIR}/lib/curl_range.c"
40-
"${LIBRARY_DIR}/lib/curl_rtmp.c"
4141
"${LIBRARY_DIR}/lib/curl_sasl.c"
4242
"${LIBRARY_DIR}/lib/curl_sha512_256.c"
4343
"${LIBRARY_DIR}/lib/curl_share.c"
@@ -47,6 +47,7 @@ set (SRCS
4747
"${LIBRARY_DIR}/lib/cw-out.c"
4848
"${LIBRARY_DIR}/lib/cw-pause.c"
4949
"${LIBRARY_DIR}/lib/dict.c"
50+
"${LIBRARY_DIR}/lib/dnscache.c"
5051
"${LIBRARY_DIR}/lib/doh.c"
5152
"${LIBRARY_DIR}/lib/dynhds.c"
5253
"${LIBRARY_DIR}/lib/easy.c"
@@ -100,6 +101,7 @@ set (SRCS
100101
"${LIBRARY_DIR}/lib/pingpong.c"
101102
"${LIBRARY_DIR}/lib/pop3.c"
102103
"${LIBRARY_DIR}/lib/progress.c"
104+
"${LIBRARY_DIR}/lib/protocol.c"
103105
"${LIBRARY_DIR}/lib/psl.c"
104106
"${LIBRARY_DIR}/lib/rand.c"
105107
"${LIBRARY_DIR}/lib/ratelimit.c"
@@ -123,6 +125,8 @@ set (SRCS
123125
"${LIBRARY_DIR}/lib/system_win32.c"
124126
"${LIBRARY_DIR}/lib/telnet.c"
125127
"${LIBRARY_DIR}/lib/tftp.c"
128+
"${LIBRARY_DIR}/lib/thrdpool.c"
129+
"${LIBRARY_DIR}/lib/thrdqueue.c"
126130
"${LIBRARY_DIR}/lib/transfer.c"
127131
"${LIBRARY_DIR}/lib/uint-bset.c"
128132
"${LIBRARY_DIR}/lib/uint-hash.c"

contrib/curl-cmake/curl_config.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@
5757

5858
#define ENABLE_IPV6
5959
#define USE_OPENSSL
60-
#define USE_THREADS_POSIX
60+
#define HAVE_THREADS_POSIX
6161
#define USE_ARES
62+
#define USE_RESOLV_ARES
63+
#define CURL_ENABLE_NTLM
6264

6365
#ifdef __illumos__
6466
#define HAVE_POSIX_STRERROR_R 1

0 commit comments

Comments
 (0)