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
|
||||
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