diff options
Diffstat (limited to 'lib/libfetch/ftp.c')
-rw-r--r-- | lib/libfetch/ftp.c | 28 |
1 files changed, 17 insertions, 11 deletions
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; |