Skip to content

[Bug] Stack-overflow in SQCompiler::Factor parsing deep unary expressions #312

@oneafter

Description

@oneafter

Description

We discovered a Stack-overflow vulnerability in the Squirrel compiler. The crash occurs when parsing a script containing a deeply nested sequence of unary operators (e.g., !!!!!!...).

The ASAN report shows an extremely deep recursion chain involving Factor, PrefixedExpr, and UnaryOP, eventually exhausting the stack and triggering a crash in SQLexer::Lex.

Environment

  • OS: Linux x86_64
  • Complier: Clang
  • Build Configuration: Release mode with ASan enabled.

Vulnerability Details

  • Target: Squirrel (squirrel-lang)
  • Vulnerability Type: CWE-674: Uncontrolled Recursion
  • Function: SQCompiler::Factor / SQCompiler::UnaryOP
  • Location: squirrel/sqcompiler.cpp:863 (recurses to PrefixedExpr)
  • Root Cause Analysis: The parser handles unary operators recursively.
// Example logic in sqcompiler.cpp
void SQCompiler::Factor() {
    if (IsUnaryOp(token)) {
        UnaryOP(op); 
        // UnaryOP calls PrefixedExpr, which calls Factor again
    } ...
}

The PoC likely contains a long chain of unary operators (e.g., logical NOT ! or negation -). The compiler recurses for each operator without a depth limit check, leading to stack exhaustion.

Reproduce

  1. Build squirrel with Release optimization and ASAN enabled.
  2. Run with the crashing file:
./build/bin/sq repro
ASAN report
==77839==ERROR: AddressSanitizer: stack-overflow on address 0x7fff82031f60 (pc 0x7f6744d053a8 bp 0x7fff82032390 sp 0x7fff82031f60 T0)
    #0 0x7f6744d053a8 in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:718
    #1 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #2 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #3 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #4 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #5 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #6 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #7 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #8 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #9 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #10 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #11 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #12 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #13 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #14 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #15 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #16 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #17 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #18 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #19 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #20 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #21 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #22 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #23 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #24 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #25 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #26 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #27 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #28 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #29 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #30 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #31 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #32 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #33 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #34 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #35 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #36 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #37 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #38 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #39 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #40 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #41 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #42 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #43 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #44 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #45 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #46 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #47 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #48 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #49 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #50 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #51 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #52 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #53 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #54 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #55 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #56 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #57 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #58 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #59 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #60 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #61 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #62 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #63 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #64 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #65 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #66 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #67 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #68 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #69 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #70 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #71 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #72 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #73 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #74 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #75 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #76 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #77 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #78 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #79 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #80 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #81 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #82 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #83 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #84 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #85 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #86 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #87 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #88 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #89 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #90 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #91 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #92 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #93 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #94 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #95 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #96 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #97 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #98 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #99 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #100 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #101 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #102 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #103 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #104 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #105 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #106 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #107 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #108 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #109 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #110 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #111 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #112 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #113 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #114 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #115 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #116 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #117 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #118 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #119 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #120 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #121 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #122 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #123 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #124 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #125 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #126 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #127 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #128 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #129 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #130 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #131 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #132 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #133 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #134 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #135 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #136 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #137 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #138 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #139 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #140 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #141 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #142 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #143 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #144 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #145 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #146 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #147 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #148 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #149 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #150 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #151 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #152 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #153 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #154 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #155 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #156 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #157 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #158 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #159 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #160 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #161 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #162 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #163 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #164 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #165 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #166 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #167 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #168 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #169 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #170 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #171 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #172 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #173 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #174 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #175 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #176 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #177 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #178 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #179 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #180 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #181 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #182 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #183 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #184 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #185 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #186 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #187 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #188 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #189 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #190 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #191 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #192 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #193 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #194 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #195 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #196 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #197 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #198 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #199 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #200 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #201 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #202 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #203 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #204 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #205 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #206 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #207 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #208 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #209 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #210 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #211 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #212 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #213 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #214 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #215 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #216 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #217 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #218 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #219 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #220 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #221 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #222 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #223 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #224 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #225 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #226 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #227 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #228 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #229 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #230 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #231 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #232 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #233 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #234 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #235 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #236 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #237 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #238 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #239 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #240 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #241 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #242 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #243 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13
    #244 0x7f6744d03a0b in SQCompiler::PrefixedExpr() /src/squirrel/squirrel/sqcompiler.cpp:618:25
    #245 0x7f6744d0bbec in SQCompiler::UnaryOP(SQOpcode) /src/squirrel/squirrel/sqcompiler.cpp:907:9
    #246 0x7f6744d06a5a in SQCompiler::Factor() /src/squirrel/squirrel/sqcompiler.cpp:863:13

SUMMARY: AddressSanitizer: stack-overflow /src/squirrel/squirrel/sqcompiler.cpp:718 in SQCompiler::Factor()
==77839==ABORTING

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions