Fixed possible segmentation fault.

This commit is contained in:
EvilPudding
2016-02-23 15:21:48 +00:00
parent 60a852a1a3
commit 682e9c1b34

View File

@@ -99,7 +99,7 @@ static const builtin *find_function(const char *name, int len) {
while (imax >= imin) { while (imax >= imin) {
const int i = (imin + ((imax-imin)/2)); const int i = (imin + ((imax-imin)/2));
int c = strncmp(name, functions[i].name, len); int c = strncmp(name, functions[i].name, len);
if (!c) c = '\0' - functions[i].name[len]; if (!c) c = '\0' - functions[i].name[len];
if (c == 0) { if (c == 0) {
return functions + i; return functions + i;
} else if (c > 0) { } else if (c > 0) {
@@ -117,7 +117,7 @@ static const double *find_var(const state *s, const char *name, int len) {
int i; int i;
if (!s->lookup) return 0; if (!s->lookup) return 0;
for (i = 0; i < s->lookup_len; ++i) { for (i = 0; i < s->lookup_len; ++i) {
if (s->lookup[i].name[len] == '\0' && strncmp(name, s->lookup[i].name, len) == 0) { if (strncmp(name, s->lookup[i].name, len) == 0 && s->lookup[i].name[len] == '\0') {
return s->lookup[i].value; return s->lookup[i].value;
} }
} }