Skip to content

Commit a9fc8fb

Browse files
authored
Merge pull request #50 from boostorg/develop
Merge Fuzz-bug fixes from develop
2 parents b3f73b4 + 2608372 commit a9fc8fb

File tree

4 files changed

+58
-197
lines changed

4 files changed

+58
-197
lines changed

.travis.yml

Lines changed: 29 additions & 192 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ matrix:
2828

2929
include:
3030
- os: linux
31-
env: TOOLSET=gcc COMPILER=g++ CXXSTD=c++03
31+
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03
3232

3333
- os: linux
34-
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++03
34+
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
3535
addons:
3636
apt:
3737
packages:
@@ -40,16 +40,7 @@ matrix:
4040
- ubuntu-toolchain-r-test
4141

4242
- os: linux
43-
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++11
44-
addons:
45-
apt:
46-
packages:
47-
- g++-4.7
48-
sources:
49-
- ubuntu-toolchain-r-test
50-
51-
- os: linux
52-
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++03
43+
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
5344
addons:
5445
apt:
5546
packages:
@@ -58,16 +49,7 @@ matrix:
5849
- ubuntu-toolchain-r-test
5950

6051
- os: linux
61-
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++11
62-
addons:
63-
apt:
64-
packages:
65-
- g++-4.8
66-
sources:
67-
- ubuntu-toolchain-r-test
68-
69-
- os: linux
70-
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++03
52+
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
7153
addons:
7254
apt:
7355
packages:
@@ -76,25 +58,7 @@ matrix:
7658
- ubuntu-toolchain-r-test
7759

7860
- os: linux
79-
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11
80-
addons:
81-
apt:
82-
packages:
83-
- g++-4.9
84-
sources:
85-
- ubuntu-toolchain-r-test
86-
87-
- os: linux
88-
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++03
89-
addons:
90-
apt:
91-
packages:
92-
- g++-5
93-
sources:
94-
- ubuntu-toolchain-r-test
95-
96-
- os: linux
97-
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++11
61+
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14
9862
addons:
9963
apt:
10064
packages:
@@ -103,43 +67,7 @@ matrix:
10367
- ubuntu-toolchain-r-test
10468

10569
- os: linux
106-
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++14
107-
addons:
108-
apt:
109-
packages:
110-
- g++-5
111-
sources:
112-
- ubuntu-toolchain-r-test
113-
114-
- os: linux
115-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++03
116-
addons:
117-
apt:
118-
packages:
119-
- g++-6
120-
sources:
121-
- ubuntu-toolchain-r-test
122-
123-
- os: linux
124-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++11
125-
addons:
126-
apt:
127-
packages:
128-
- g++-6
129-
sources:
130-
- ubuntu-toolchain-r-test
131-
132-
- os: linux
133-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++14
134-
addons:
135-
apt:
136-
packages:
137-
- g++-6
138-
sources:
139-
- ubuntu-toolchain-r-test
140-
141-
- os: linux
142-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++1z
70+
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11
14371
addons:
14472
apt:
14573
packages:
@@ -148,7 +76,7 @@ matrix:
14876
- ubuntu-toolchain-r-test
14977

15078
- os: linux
151-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++03
79+
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=14,1z
15280
addons:
15381
apt:
15482
packages:
@@ -157,7 +85,7 @@ matrix:
15785
- ubuntu-toolchain-r-test
15886

15987
- os: linux
160-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++11
88+
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11 CXXSTD_DIALECT=cxxstd-dialect=gnu
16189
addons:
16290
apt:
16391
packages:
@@ -166,7 +94,7 @@ matrix:
16694
- ubuntu-toolchain-r-test
16795

16896
- os: linux
169-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++14
97+
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=14,1z CXXSTD_DIALECT=cxxstd-dialect=gnu
17098
addons:
17199
apt:
172100
packages:
@@ -175,32 +103,10 @@ matrix:
175103
- ubuntu-toolchain-r-test
176104

177105
- os: linux
178-
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++1z
179-
addons:
180-
apt:
181-
packages:
182-
- g++-6
183-
sources:
184-
- ubuntu-toolchain-r-test
185-
186-
- os: linux
187-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
188-
189-
- os: linux
190-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
191-
192-
- os: linux
193-
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++03
194-
addons:
195-
apt:
196-
packages:
197-
- clang-3.5
198-
sources:
199-
- ubuntu-toolchain-r-test
200-
- llvm-toolchain-precise-3.5
106+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
201107

202108
- os: linux
203-
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++11
109+
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11
204110
addons:
205111
apt:
206112
packages:
@@ -210,17 +116,7 @@ matrix:
210116
- llvm-toolchain-precise-3.5
211117

212118
- os: linux
213-
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++03
214-
addons:
215-
apt:
216-
packages:
217-
- clang-3.6
218-
sources:
219-
- ubuntu-toolchain-r-test
220-
- llvm-toolchain-precise-3.6
221-
222-
- os: linux
223-
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++11
119+
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11
224120
addons:
225121
apt:
226122
packages:
@@ -230,7 +126,7 @@ matrix:
230126
- llvm-toolchain-precise-3.6
231127

232128
- os: linux
233-
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++03
129+
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11
234130
addons:
235131
apt:
236132
packages:
@@ -240,27 +136,7 @@ matrix:
240136
- llvm-toolchain-precise-3.7
241137

242138
- os: linux
243-
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++11
244-
addons:
245-
apt:
246-
packages:
247-
- clang-3.7
248-
sources:
249-
- ubuntu-toolchain-r-test
250-
- llvm-toolchain-precise-3.7
251-
252-
- os: linux
253-
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++03
254-
addons:
255-
apt:
256-
packages:
257-
- clang-3.8
258-
sources:
259-
- ubuntu-toolchain-r-test
260-
- llvm-toolchain-precise-3.8
261-
262-
- os: linux
263-
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++11
139+
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11
264140
addons:
265141
apt:
266142
packages:
@@ -270,7 +146,7 @@ matrix:
270146
- llvm-toolchain-precise-3.8
271147

272148
- os: linux
273-
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++14
149+
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=14,1z
274150
addons:
275151
apt:
276152
packages:
@@ -281,40 +157,7 @@ matrix:
281157
- llvm-toolchain-precise-3.8
282158

283159
- os: linux
284-
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++1z
285-
addons:
286-
apt:
287-
packages:
288-
- clang-3.8
289-
- libstdc++-4.9-dev
290-
sources:
291-
- ubuntu-toolchain-r-test
292-
- llvm-toolchain-precise-3.8
293-
294-
- os: linux
295-
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++03
296-
addons:
297-
apt:
298-
packages:
299-
- clang-3.9
300-
- libstdc++-4.9-dev
301-
sources:
302-
- ubuntu-toolchain-r-test
303-
- llvm-toolchain-precise-3.9
304-
305-
- os: linux
306-
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++11
307-
addons:
308-
apt:
309-
packages:
310-
- clang-3.9
311-
- libstdc++-4.9-dev
312-
sources:
313-
- ubuntu-toolchain-r-test
314-
- llvm-toolchain-precise-3.9
315-
316-
- os: linux
317-
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++14
160+
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11
318161
addons:
319162
apt:
320163
packages:
@@ -325,7 +168,7 @@ matrix:
325168
- llvm-toolchain-precise-3.9
326169

327170
- os: linux
328-
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++1z
171+
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=14,1z
329172
addons:
330173
apt:
331174
packages:
@@ -336,39 +179,31 @@ matrix:
336179
- llvm-toolchain-precise-3.9
337180

338181
- os: osx
339-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
340-
osx_image: xcode8.3
341-
342-
- os: osx
343-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
344-
osx_image: xcode8.3
345-
346-
- os: osx
347-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
182+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
348183
osx_image: xcode8.3
349184

350185
- os: osx
351-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
186+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=14,1z
352187
osx_image: xcode8.3
353188

354189
- os: osx
355-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
190+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
356191
osx_image: xcode8.2
357192

358193
- os: osx
359-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
194+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
360195
osx_image: xcode8.1
361196

362197
- os: osx
363-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
198+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
364199
osx_image: xcode8.0
365200

366201
- os: osx
367-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
202+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
368203
osx_image: xcode7.3
369204

370205
- os: osx
371-
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
206+
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
372207
osx_image: xcode6.4
373208

374209
install:
@@ -426,9 +261,11 @@ install:
426261

427262
script:
428263
- |-
429-
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
430-
- (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET && ./config_info_travis)
431-
- ./b2 -j3 libs/regex/test toolset=$TOOLSET
264+
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
265+
- IFS=','
266+
- for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL $CXXSTD_DIALECT && echo With Standard Version $CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done
267+
- unset IFS
268+
- ./b2 -j3 libs/regex/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT
432269

433270
notifications:
434271
email:

include/boost/regex/v4/perl_matcher.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,9 @@ class perl_matcher
379379
: m_result(what), base(first), last(end),
380380
position(first), backstop(l_base), re(e), traits_inst(e.get_traits()),
381381
m_independent(false), next_count(&rep_obj), rep_obj(&next_count)
382+
#ifdef BOOST_REGEX_NON_RECURSIVE
383+
, m_recursions(0)
384+
#endif
382385
{
383386
construct_init(e, f);
384387
}
@@ -566,6 +569,8 @@ class perl_matcher
566569
bool m_unwound_alt;
567570
// We are unwinding a commit - used by independent subs to determine whether to stop there or carry on unwinding:
568571
//bool m_unwind_commit;
572+
// Recursion limit:
573+
unsigned m_recursions;
569574
#endif
570575

571576
// these operations aren't allowed, so are declared private,

0 commit comments

Comments
 (0)