Fix segfault when there are too many closing round brackets in parsed code
This commit is contained in:
parent
e64d388957
commit
e442903fde
3 changed files with 9 additions and 1 deletions
6
Examples/test-suite/errors/cpp_extra_brackets.i
Normal file
6
Examples/test-suite/errors/cpp_extra_brackets.i
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
%module cpp_extra_brackets
|
||||||
|
|
||||||
|
// Extra brackets was segfaulting in SWIG-3.0.0
|
||||||
|
struct ABC {
|
||||||
|
int operator<<(ABC &))) { return 0; }
|
||||||
|
};
|
||||||
1
Examples/test-suite/errors/cpp_extra_brackets.stderr
Normal file
1
Examples/test-suite/errors/cpp_extra_brackets.stderr
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
cpp_extra_brackets.i:5: Error: Syntax error in input(3).
|
||||||
|
|
@ -345,7 +345,8 @@ Scanner_push_brackets(Scanner *s) {
|
||||||
* ----------------------------------------------------------------------------- */
|
* ----------------------------------------------------------------------------- */
|
||||||
void
|
void
|
||||||
Scanner_pop_brackets(Scanner *s) {
|
Scanner_pop_brackets(Scanner *s) {
|
||||||
Delitem(s->brackets, 0);
|
if (Len(s->brackets) > 0) /* protect against unbalanced ')' brackets */
|
||||||
|
Delitem(s->brackets, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue