Commit b7dedf43 authored by Rusty Russell's avatar Rusty Russell

ciniparser: fix ctype.h usage, and lazy strrchr.

tolower(), toupper() and isupper want an unsigned value.  Also, fix
lazy cost-discarding inside strrchr for extra safety.
parent 2621f3ad
...@@ -363,10 +363,11 @@ static bool should_fail(struct failtest_call *call) ...@@ -363,10 +363,11 @@ static bool should_fail(struct failtest_call *call)
if (*failpath == '+') if (*failpath == '+')
failpath = NULL; failpath = NULL;
else { else {
if (tolower(*failpath) != info_to_arg[call->type]) if (tolower((unsigned char)*failpath)
!= info_to_arg[call->type])
errx(1, "Failpath expected '%c' got '%c'\n", errx(1, "Failpath expected '%c' got '%c'\n",
info_to_arg[call->type], *failpath); info_to_arg[call->type], *failpath);
call->fail = isupper(*(failpath++)); call->fail = isupper((unsigned char)*(failpath++));
return call->fail; return call->fail;
} }
} }
...@@ -376,7 +377,7 @@ static bool should_fail(struct failtest_call *call) ...@@ -376,7 +377,7 @@ static bool should_fail(struct failtest_call *call)
unsigned int i; unsigned int i;
for (i = 0; i < history_num; i++) { for (i = 0; i < history_num; i++) {
char c = info_to_arg[history[i].type]; unsigned char c = info_to_arg[history[i].type];
if (history[i].fail) if (history[i].fail)
c = toupper(c); c = toupper(c);
if (c != debugpath[i]) if (c != debugpath[i])
...@@ -430,7 +431,7 @@ static bool should_fail(struct failtest_call *call) ...@@ -430,7 +431,7 @@ static bool should_fail(struct failtest_call *call)
if (child == 0) { if (child == 0) {
if (tracefd != -1) { if (tracefd != -1) {
struct timeval now; struct timeval now;
char *p; const char *p;
gettimeofday(&now, NULL); gettimeofday(&now, NULL);
if (now.tv_usec < start.tv_usec) { if (now.tv_usec < start.tv_usec) {
now.tv_sec--; now.tv_sec--;
...@@ -441,7 +442,7 @@ static bool should_fail(struct failtest_call *call) ...@@ -441,7 +442,7 @@ static bool should_fail(struct failtest_call *call)
p = failpath_string(); p = failpath_string();
trace("%u->%u (%u.%02u): %s (", getppid(), getpid(), trace("%u->%u (%u.%02u): %s (", getppid(), getpid(),
(int)now.tv_sec, (int)now.tv_usec / 10000, p); (int)now.tv_sec, (int)now.tv_usec / 10000, p);
free(p); free((char *)p);
p = strrchr(history[history_num-1].file, '/'); p = strrchr(history[history_num-1].file, '/');
if (p) if (p)
trace("%s", p+1); trace("%s", p+1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment