From d198b4b8bb4da44884c0738e938e1ac5cec10b47 Mon Sep 17 00:00:00 2001 From: des Date: Wed, 19 Dec 2007 00:26:36 +0000 Subject: As several people pointed out, I did all the ctype casts the wrong way (not for the first time...) Noticed by: bde, ru ++ MFC after: 1 week --- lib/libfetch/common.c | 4 ++-- lib/libfetch/fetch.c | 4 ++-- lib/libfetch/ftp.c | 28 +++++++++++++++++----------- lib/libfetch/http.c | 28 +++++++++++++++------------- 4 files changed, 36 insertions(+), 28 deletions(-) (limited to 'lib/libfetch') diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 936524f..2246560 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -763,12 +763,12 @@ fetch_no_proxy_match(const char *host) p = no_proxy; do { /* position p at the beginning of a domain suffix */ - while (*p == ',' || isspace((int)*p)) + while (*p == ',' || isspace((unsigned char)*p)) p++; /* position q at the first separator character */ for (q = p; *q; ++q) - if (*q == ',' || isspace((int)*q)) + if (*q == ',' || isspace((unsigned char)*q)) break; d_len = q - p; diff --git a/lib/libfetch/fetch.c b/lib/libfetch/fetch.c index 900b685..6c4901f 100644 --- a/lib/libfetch/fetch.c +++ b/lib/libfetch/fetch.c @@ -369,7 +369,7 @@ fetchParseURL(const char *URL) /* port */ if (*p == ':') { for (q = ++p; *q && (*q != '/'); q++) - if (isdigit((int)*q)) + if (isdigit((unsigned char)*q)) u->port = u->port * 10 + (*q - '0'); else { /* invalid port */ @@ -395,7 +395,7 @@ nohost: } u->doc = doc; while (*p != '\0') { - if (!isspace((int)*p)) { + if (!isspace((unsigned char)*p)) { *doc++ = *p++; } else { *doc++ = '%'; diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c index 4316346e..914f674 100644 --- a/lib/libfetch/ftp.c +++ b/lib/libfetch/ftp.c @@ -102,11 +102,16 @@ __FBSDID("$FreeBSD$"); static struct url cached_host; static conn_t *cached_connection; -#define isftpreply(foo) (isdigit((int)foo[0]) && isdigit((int)foo[1]) \ - && isdigit((int)foo[2]) \ - && (foo[3] == ' ' || foo[3] == '\0')) -#define isftpinfo(foo) (isdigit((int)foo[0]) && isdigit((int)foo[1]) \ - && isdigit((int)foo[2]) && foo[3] == '-') +#define isftpreply(foo) \ + (isdigit((unsigned char)foo[0]) && \ + isdigit((unsigned char)foo[1]) && \ + isdigit((unsigned char)foo[2]) && \ + (foo[3] == ' ' || foo[3] == '\0')) +#define isftpinfo(foo) \ + (isdigit((unsigned char)foo[0]) && \ + isdigit((unsigned char)foo[1]) && \ + isdigit((unsigned char)foo[2]) && \ + foo[3] == '-') /* * Translate IPv4 mapped IPv6 address to IPv4 address @@ -150,7 +155,8 @@ ftp_chkerr(conn_t *conn) } } - while (conn->buflen && isspace((int)conn->buf[conn->buflen - 1])) + while (conn->buflen && + isspace((unsigned char)conn->buf[conn->buflen - 1])) conn->buflen--; conn->buf[conn->buflen] = '\0'; @@ -414,11 +420,11 @@ ftp_stat(conn_t *conn, const char *file, struct url_stat *us) ftp_seterr(e); return (-1); } - for (ln = conn->buf + 4; *ln && isspace((int)*ln); ln++) + for (ln = conn->buf + 4; *ln && isspace((unsigned char)*ln); ln++) /* nothing */ ; - for (us->size = 0; *ln && isdigit((int)*ln); ln++) + for (us->size = 0; *ln && isdigit((unsigned char)*ln); ln++) us->size = us->size * 10 + *ln - '0'; - if (*ln && !isspace((int)*ln)) { + if (*ln && !isspace((unsigned char)*ln)) { ftp_seterr(FTP_PROTOCOL_ERROR); us->size = -1; return (-1); @@ -432,7 +438,7 @@ ftp_stat(conn_t *conn, const char *file, struct url_stat *us) ftp_seterr(e); return (-1); } - for (ln = conn->buf + 4; *ln && isspace((int)*ln); ln++) + for (ln = conn->buf + 4; *ln && isspace((unsigned char)*ln); ln++) /* nothing */ ; switch (strspn(ln, "0123456789")) { case 14: @@ -691,7 +697,7 @@ ftp_transfer(conn_t *conn, const char *oper, const char *file, switch (e) { case FTP_PASSIVE_MODE: case FTP_LPASSIVE_MODE: - for (p = ln + 3; *p && !isdigit((int)*p); p++) + for (p = ln + 3; *p && !isdigit((unsigned char)*p); p++) /* nothing */ ; if (!*p) { e = FTP_PROTOCOL_ERROR; diff --git a/lib/libfetch/http.c b/lib/libfetch/http.c index c89f5f1..2ee76e2 100644 --- a/lib/libfetch/http.c +++ b/lib/libfetch/http.c @@ -137,15 +137,15 @@ http_new_chunk(struct httpio *io) if (fetch_getln(io->conn) == -1) return (-1); - if (io->conn->buflen < 2 || !isxdigit((int)*io->conn->buf)) + if (io->conn->buflen < 2 || !isxdigit((unsigned char)*io->conn->buf)) return (-1); - for (p = io->conn->buf; *p && !isspace((int)*p); ++p) { + for (p = io->conn->buf; *p && !isspace((unsigned char)*p); ++p) { if (*p == ';') break; - if (!isxdigit((int)*p)) + if (!isxdigit((unsigned char)*p)) return (-1); - if (isdigit((int)*p)) { + if (isdigit((unsigned char)*p)) { io->chunksize = io->chunksize * 16 + *p - '0'; } else { @@ -417,8 +417,10 @@ http_get_reply(conn_t *conn) return (HTTP_PROTOCOL_ERROR); p += 4; } - if (*p != ' ' || !isdigit((int)p[1]) || - !isdigit((int)p[2]) || !isdigit((int)p[3])) + if (*p != ' ' || + !isdigit((unsigned char)p[1]) || + !isdigit((unsigned char)p[2]) || + !isdigit((unsigned char)p[3])) return (HTTP_PROTOCOL_ERROR); conn->err = (p[1] - '0') * 100 + (p[2] - '0') * 10 + (p[3] - '0'); @@ -436,7 +438,7 @@ http_match(const char *str, const char *hdr) /* nothing */; if (*str || *hdr != ':') return (NULL); - while (*hdr && isspace((int)*++hdr)) + while (*hdr && isspace((unsigned char)*++hdr)) /* nothing */; return (hdr); } @@ -451,7 +453,7 @@ http_next_header(conn_t *conn, const char **p) if (fetch_getln(conn) == -1) return (hdr_syserror); - while (conn->buflen && isspace((int)conn->buf[conn->buflen - 1])) + while (conn->buflen && isspace((unsigned char)conn->buf[conn->buflen - 1])) conn->buflen--; conn->buf[conn->buflen] = '\0'; if (conn->buflen == 0) @@ -500,7 +502,7 @@ http_parse_length(const char *p, off_t *length) { off_t len; - for (len = 0; *p && isdigit((int)*p); ++p) + for (len = 0; *p && isdigit((unsigned char)*p); ++p) len = len * 10 + (*p - '0'); if (*p) return (-1); @@ -525,16 +527,16 @@ http_parse_range(const char *p, off_t *offset, off_t *length, off_t *size) first = last = -1; ++p; } else { - for (first = 0; *p && isdigit((int)*p); ++p) + for (first = 0; *p && isdigit((unsigned char)*p); ++p) first = first * 10 + *p - '0'; if (*p != '-') return (-1); - for (last = 0, ++p; *p && isdigit((int)*p); ++p) + for (last = 0, ++p; *p && isdigit((unsigned char)*p); ++p) last = last * 10 + *p - '0'; } if (first > last || *p != '/') return (-1); - for (len = 0, ++p; *p && isdigit((int)*p); ++p) + for (len = 0, ++p; *p && isdigit((unsigned char)*p); ++p) len = len * 10 + *p - '0'; if (*p || len < last - first + 1) return (-1); @@ -750,7 +752,7 @@ http_print_html(FILE *out, FILE *in) comment = tag = 0; while ((line = fgetln(in, &len)) != NULL) { - while (len && isspace((int)line[len - 1])) + while (len && isspace((unsigned char)line[len - 1])) --len; for (p = q = line; q < line + len; ++q) { if (comment && *q == '-') { -- cgit v1.1