diff options
author | corvid <corvid@lavabit.com> | 2011-11-12 20:35:34 +0000 |
---|---|---|
committer | corvid <corvid@lavabit.com> | 2011-11-12 20:35:34 +0000 |
commit | 57b7ee6eb3b0ee9db40ea5a143383ba595c7dad6 (patch) | |
tree | 0fd03d9bc8e33f39e7947ab7d65e151611a1b3e3 | |
parent | fa8f58b6cd95be0497bc13351ad3479c12e882a4 (diff) |
some isascii()
-rw-r--r-- | dpi/datauri.c | 2 | ||||
-rw-r--r-- | src/auth.c | 2 | ||||
-rw-r--r-- | src/html.cc | 4 | ||||
-rw-r--r-- | src/misc.c | 8 | ||||
-rw-r--r-- | src/url.c | 3 |
5 files changed, 9 insertions, 10 deletions
diff --git a/dpi/datauri.c b/dpi/datauri.c index 9088c6aa..f8e2ad94 100644 --- a/dpi/datauri.c +++ b/dpi/datauri.c @@ -44,7 +44,7 @@ static void b64strip_illegal_chars(unsigned char* str) MSG("len=%d{%s}\n", strlen((char*)str), str); for (p = s; (*p = *s); ++s) { - if (isalnum(*p) || strchr("+/=", *p)) + if (isascii(*p) && (isalnum(*p) || strchr("+/=", *p))) ++p; } @@ -104,7 +104,7 @@ static int Auth_path_is_inside(const char *path1, const char *path2, int len) static int Auth_is_token_char(char c) { const char *invalid = "\"()<>@,;:\\[]?=/{} \t"; - return (strchr(invalid, c) || iscntrl((uchar_t)c)) ? 0 : 1; + return (!isascii(c) || strchr(invalid, c) || iscntrl((uchar_t)c)) ? 0 : 1; } /* diff --git a/src/html.cc b/src/html.cc index 896aaab6..f740a77e 100644 --- a/src/html.cc +++ b/src/html.cc @@ -1462,10 +1462,10 @@ static int int i; for (i = 0; val[i]; ++i) - if (!(isalnum(val[i]) || strchr(":_.-", val[i]))) + if (!isascii(val[i]) || !(isalnum(val[i]) || strchr(":_.-", val[i]))) break; - if (val[i] || !isalpha(val[0])) + if (val[i] || !(isascii(val[0]) && isalpha(val[0]))) BUG_MSG("'%s' value is not of the form " "[A-Za-z][A-Za-z0-9:_.-]*\n", attrname); @@ -221,14 +221,14 @@ void a_Misc_parse_content_type(const char *type, char **major, char **minor, if (!(str = type)) return; - for (s = str; *s && !iscntrl((uchar_t)*s) && !strchr(tspecials_space, *s); - s++) ; + for (s = str; *s && isascii((uchar_t)*s) && !iscntrl((uchar_t)*s) && + !strchr(tspecials_space, *s); s++) ; if (major) *major = dStrndup(str, s - str); if (*s == '/') { - for (str = ++s; - *s && !iscntrl((uchar_t)*s) && !strchr(tspecials_space, *s); s++) ; + for (str = ++s; *s && isascii((uchar_t)*s) && !iscntrl((uchar_t)*s) && + !strchr(tspecials_space, *s); s++) ; if (minor) *minor = dStrndup(str, s - str); } @@ -586,8 +586,7 @@ char *a_Url_encode_hex_str(const char *str) newstr = dNew(char, 6*strlen(str)+1); for (c = newstr; *str; str++) - if ((dIsalnum(*str) && !(*str & 0x80)) || strchr(verbatim, *str)) - /* we really need isalnum for the "C" locale */ + if ((dIsalnum(*str) && isascii(*str)) || strchr(verbatim, *str)) *c++ = *str; else if (*str == ' ') *c++ = '+'; |