forked from github/server
do not call isdigit with a negative value.
http://bugs.eressea.de/view.php?id=1987#c6941
This commit is contained in:
parent
bb37e423e1
commit
644a6019a6
|
@ -229,7 +229,7 @@ int setstealth_cmd(unit * u, struct order *ord)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isdigit(s[0])) {
|
if (isdigit(*(const unsigned char *)s)) {
|
||||||
/* Tarnungslevel setzen */
|
/* Tarnungslevel setzen */
|
||||||
level = atoi((const char *)s);
|
level = atoi((const char *)s);
|
||||||
if (level > effskill(u, SK_STEALTH, 0)) {
|
if (level > effskill(u, SK_STEALTH, 0)) {
|
||||||
|
|
|
@ -39,9 +39,9 @@ int atoi36(const char *str)
|
||||||
while (isalnum(*(unsigned char *)s)) {
|
while (isalnum(*(unsigned char *)s)) {
|
||||||
if (isupper(*(unsigned char *)s))
|
if (isupper(*(unsigned char *)s))
|
||||||
i = i * 36 + (*s) - 'A' + 10;
|
i = i * 36 + (*s) - 'A' + 10;
|
||||||
else if (islower(*(unsigned char *)s))
|
else if (islower(*s))
|
||||||
i = i * 36 + (*s) - 'a' + 10;
|
i = i * 36 + (*s) - 'a' + 10;
|
||||||
else if (isdigit(*(unsigned char *)s))
|
else if (isdigit(*s))
|
||||||
i = i * 36 + (*s) - '0';
|
i = i * 36 + (*s) - '0';
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -49,7 +49,7 @@ static int term_eval(const char **sptr)
|
||||||
int state = 1;
|
int state = 1;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (isdigit(*(unsigned char *)c)) {
|
if (isdigit(*(const unsigned char *)c)) {
|
||||||
k = k * 10 + (*c - '0');
|
k = k * 10 + (*c - '0');
|
||||||
}
|
}
|
||||||
else if (*c == '+' || *c == '-' || *c == 0 || *c == '*' || *c == ')'
|
else if (*c == '+' || *c == '-' || *c == 0 || *c == '*' || *c == ')'
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <memory.h>
|
#include <memory.h>
|
||||||
|
|
||||||
|
@ -251,7 +250,8 @@ unsigned int atoip(const char *s)
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
assert(s);
|
assert(s);
|
||||||
n = isdigit(s[0]) ? atoi(s) : 0;
|
n = (s[0] >='0' && s[0]<='9');
|
||||||
|
n = n ? atoi(s) : 0;
|
||||||
|
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
n = 0;
|
n = 0;
|
||||||
|
|
|
@ -354,7 +354,7 @@ static const char *parse(opstack ** stack, const char *inn,
|
||||||
return parse_symbol(stack, ++b, userdata);
|
return parse_symbol(stack, ++b, userdata);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (isdigit(*(unsigned char *)b) || *b == '-' || *b == '+') {
|
if (isdigit(*(const unsigned char *)b) || *b == '-' || *b == '+') {
|
||||||
return parse_int(stack, b);
|
return parse_int(stack, b);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue