From fb8d7e59107f32f4fba5f3b70287daa9c5edfc97 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 20 Dec 1998 15:36:03 +0000 Subject: [PATCH] unsigned char-correctness git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5269 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/iruserok.c | 6 ++++-- lib/roken/parse_units.c | 4 ++-- lib/roken/snprintf.c | 27 ++++++++++++++------------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/lib/roken/iruserok.c b/lib/roken/iruserok.c index 9cb54203f..d54cbe5a4 100644 --- a/lib/roken/iruserok.c +++ b/lib/roken/iruserok.c @@ -75,7 +75,8 @@ __icheckhost(unsigned raddr, const char *lhost) char **pp; /* Try for raw ip address first. */ - if (isdigit(*lhost) && (long)(laddr = inet_addr(lhost)) != -1) + if (isdigit((unsigned char)*lhost) + && (long)(laddr = inet_addr(lhost)) != -1) return (raddr == laddr); /* Better be a hostname. */ @@ -142,7 +143,8 @@ __ivaliduser(FILE *hostf, unsigned raddr, const char *luser, continue; } while (*p != '\n' && *p != ' ' && *p != '\t' && *p != '\0') { - *p = isupper(*p) ? tolower(*p) : *p; + if (isupper((unsigned char)*p)) + *p = tolower((unsigned char)*p); p++; } if (*p == ' ' || *p == '\t') { diff --git a/lib/roken/parse_units.c b/lib/roken/parse_units.c index cc6a74370..91f90ab1f 100644 --- a/lib/roken/parse_units.c +++ b/lib/roken/parse_units.c @@ -84,7 +84,7 @@ parse_something (const char *s, const struct units *units, size_t u_len; unsigned partial; - while(isspace(*p) || *p == ',') + while(isspace((unsigned char)*p) || *p == ',') ++p; val = strtod (p, &next); /* strtol(p, &next, 0); */ @@ -93,7 +93,7 @@ parse_something (const char *s, const struct units *units, return -1; } p = next; - while (isspace(*p)) + while (isspace((unsigned char)*p)) ++p; if (*p == '\0') { res = (*func)(res, val, def_mult); diff --git a/lib/roken/snprintf.c b/lib/roken/snprintf.c index f9b560acb..94f94ae8d 100644 --- a/lib/roken/snprintf.c +++ b/lib/roken/snprintf.c @@ -60,12 +60,12 @@ enum format_flags { */ struct state { - char *str; - char *s; - char *theend; + unsigned char *str; + unsigned char *s; + unsigned char *theend; size_t sz; size_t max_sz; - int (*append_char)(struct state *, char); + int (*append_char)(struct state *, unsigned char); int (*reserve)(struct state *, size_t); /* XXX - methods */ }; @@ -78,7 +78,7 @@ sn_reserve (struct state *state, size_t n) } static int -sn_append_char (struct state *state, char c) +sn_append_char (struct state *state, unsigned char c) { if (sn_reserve (state, 1)) { return 1; @@ -94,7 +94,7 @@ as_reserve (struct state *state, size_t n) { if (state->s + n > state->theend) { int off = state->s - state->str; - char *tmp; + unsigned char *tmp; if (state->max_sz && state->sz >= state->max_sz) return 1; @@ -113,7 +113,7 @@ as_reserve (struct state *state, size_t n) } static int -as_append_char (struct state *state, char c) +as_append_char (struct state *state, unsigned char c) { if(as_reserve (state, 1)) return 1; @@ -125,7 +125,7 @@ as_append_char (struct state *state, char c) static int append_number(struct state *state, - unsigned long num, unsigned base, char *rep, + unsigned long num, unsigned base, unsigned char *rep, int width, int prec, int flags, int minusp) { int len = 0; @@ -214,7 +214,7 @@ append_number(struct state *state, static int append_string (struct state *state, - char *arg, + unsigned char *arg, int width, int prec, int flags) @@ -245,7 +245,7 @@ append_string (struct state *state, static int append_char(struct state *state, - char arg, + unsigned char arg, int width, int flags) { @@ -279,9 +279,10 @@ else \ */ static int -xyzprintf (struct state *state, const char *format, va_list ap) +xyzprintf (struct state *state, const char *char_format, va_list ap) { - char c; + const unsigned char *format = (const unsigned char *)char_format; + unsigned char c; while((c = *format++)) { if (c == '%') { @@ -356,7 +357,7 @@ xyzprintf (struct state *state, const char *format, va_list ap) break; case 's' : if (append_string(state, - va_arg(ap, char*), + va_arg(ap, unsigned char*), width, prec, flags))