From 6b284d74f0527cd3ed85222b4aea33a712289a3a Mon Sep 17 00:00:00 2001 From: Sourav Date: Wed, 11 Feb 2026 10:41:10 -0800 Subject: [PATCH] Fix undefined behavior in ncr() when casting NaN/Inf to unsigned int --- example.exe | Bin 0 -> 148237 bytes tempCodeRunnerFile.c | 1 + tinyexpr.c | 14 ++++++++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 example.exe create mode 100644 tempCodeRunnerFile.c diff --git a/example.exe b/example.exe new file mode 100644 index 0000000000000000000000000000000000000000..50adae4ad2f7c433163a64b561963573f203c040 GIT binary patch literal 148237 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 UINT_MAX || r > UINT_MAX) return INFINITY; - unsigned long int un = (unsigned int)(n), ur = (unsigned int)(r), i; + + unsigned long int un = (unsigned int)(n); + unsigned long int ur = (unsigned int)(r); + unsigned long int i; + unsigned long int result = 1; + if (ur > un / 2) ur = un - ur; + for (i = 1; i <= ur; i++) { if (result > ULONG_MAX / (un - ur + i)) return INFINITY; result *= un - ur + i; result /= i; } + return result; } + static double npr(double n, double r) {return ncr(n, r) * fac(r);} #ifdef _MSC_VER @@ -256,7 +266,7 @@ void next_token(state *s) { const char *start; start = s->next; while (isalpha(s->next[0]) || isdigit(s->next[0]) || (s->next[0] == '_')) s->next++; - + const te_variable *var = find_lookup(s, start, s->next - start); if (!var) var = find_builtin(start, s->next - start);