-
Notifications
You must be signed in to change notification settings - Fork 283
Open
Description
Description
We discovered a stack overflow vulnerability in tinyexpr. The crash is caused by unbounded recursion in the expression parser when processing deeply nested mathematical expressions or lists. A maliciously crafted input with extreme nesting levels can exhaust the stack memory, leading to a Denial of Service (DoS).
Environment
- OS: Linux x86_64
- Complier: Clang
- Build Configuration: Release mode with ASan enabled.
Vulnerability Details
- Target: tinyexpr
- Vulnerability Type: CWE-674: Uncontrolled Recursion
- Function involved: factor, term, expr, list, base, power
- Location: tinyexpr.c (around line 503 and related recursive calls)
- Root Cause Analysis: The parser uses a recursive descent approach to evaluate expressions. In functions like factor, expr, and base, the parser calls itself or related functions to handle sub-expressions. Without a maximum recursion depth limit, a deeply nested input (e.g., thousands of nested parentheses or function calls) causes the stack to overflow.
Reproduce
- Build tinyexpr and harness with Release optimization and ASAN enabled.
harness.c
#include "tinyexpr.h"
#include <stdint.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
return 1;
}
FILE *f = fopen(argv[1], "rb");
if (!f) {
return 1;
}
fseek(f, 0, SEEK_END);
long len = ftell(f);
fseek(f, 0, SEEK_SET);
unsigned char *buf = (unsigned char *)malloc(len);
if (!buf) {
fclose(f);
return 1;
}
fread(buf, 1, len, f);
fclose(f);
if (len < 10) {
free(buf);
return 0;
}
char var_name[9];
memcpy(var_name, buf, 8);
var_name[8] = '\0';
double var_val = 1.0;
te_variable vars[] = {{var_name, &var_val}};
char *expr = (char *)malloc(len - 8 + 1);
if (!expr) {
free(buf);
return 1;
}
memcpy(expr, buf + 8, len - 8);
expr[len - 8] = '\0';
int err;
te_expr *n = te_compile(expr, vars, 1, &err);
if (n) {
te_eval(n);
te_free(n);
}
free(expr);
free(buf);
return 0;
}
- Run with the crashing file:
./harness repro
ASAN report
AddressSanitizer:DEADLYSIGNAL
=================================================================
==93302==ERROR: AddressSanitizer: stack-overflow on address 0x7ffe78c6cfd8 (pc 0x55c7ac1b8be5 bp 0x7ffe78c6d0d0 sp 0x7ffe78c6cfe0 T0)
#0 0x55c7ac1b8be5 in factor /src/tinyexpr/tinyexpr.c:503
#1 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#2 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#3 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#4 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#5 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#6 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#7 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#8 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#9 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#10 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#11 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#12 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#13 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#14 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#15 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#16 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#17 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#18 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#19 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#20 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#21 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#22 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#23 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#24 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#25 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#26 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#27 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#28 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#29 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#30 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#31 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#32 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#33 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#34 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#35 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#36 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#37 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#38 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#39 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#40 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#41 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#42 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#43 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#44 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#45 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#46 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#47 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#48 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#49 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#50 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#51 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#52 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#53 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#54 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#55 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#56 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#57 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#58 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#59 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#60 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#61 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#62 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#63 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#64 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#65 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#66 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#67 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#68 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#69 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#70 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#71 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#72 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#73 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#74 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#75 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#76 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#77 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#78 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#79 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#80 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#81 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#82 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#83 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#84 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#85 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#86 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#87 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#88 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#89 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#90 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#91 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#92 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#93 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#94 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#95 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#96 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#97 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#98 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#99 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#100 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#101 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#102 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#103 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#104 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#105 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#106 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#107 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#108 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#109 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#110 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#111 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#112 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#113 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#114 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#115 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#116 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#117 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#118 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#119 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#120 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#121 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#122 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#123 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#124 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#125 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#126 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#127 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#128 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#129 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#130 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#131 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#132 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#133 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#134 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#135 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#136 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#137 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#138 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#139 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#140 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#141 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#142 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#143 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#144 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#145 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#146 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#147 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#148 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#149 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#150 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#151 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#152 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#153 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#154 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#155 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#156 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#157 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#158 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#159 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#160 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#161 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#162 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#163 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#164 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#165 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#166 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#167 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#168 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#169 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#170 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#171 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#172 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#173 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#174 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#175 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#176 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#177 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#178 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#179 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#180 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#181 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#182 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#183 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#184 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#185 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#186 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#187 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#188 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#189 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#190 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#191 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#192 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#193 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#194 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#195 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#196 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#197 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#198 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#199 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#200 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#201 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#202 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#203 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#204 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#205 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#206 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#207 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#208 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#209 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#210 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#211 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#212 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#213 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#214 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#215 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#216 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#217 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#218 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#219 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#220 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#221 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#222 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#223 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#224 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#225 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#226 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#227 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#228 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#229 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#230 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#231 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#232 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#233 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#234 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#235 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#236 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#237 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#238 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#239 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#240 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
#241 0x55c7ac1b8863 in term /src/tinyexpr/tinyexpr.c:529:20
#242 0x55c7ac1b82fb in expr /src/tinyexpr/tinyexpr.c:551:20
#243 0x55c7ac1b75f8 in list /src/tinyexpr/tinyexpr.c:573:20
#244 0x55c7ac1ba018 in base /src/tinyexpr/tinyexpr.c:399:19
#245 0x55c7ac1b9159 in power /src/tinyexpr/tinyexpr.c:433:15
#246 0x55c7ac1b8c7b in factor /src/tinyexpr/tinyexpr.c:505:20
SUMMARY: AddressSanitizer: stack-overflow /src/tinyexpr/tinyexpr.c:503 in factor
==93302==ABORTING
Metadata
Metadata
Assignees
Labels
No labels