Compare commits
3 Commits
v1.x
...
advisory-f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26c09a7ceb | ||
|
|
927b2c6719 | ||
|
|
fd08591bf9 |
@ -322,6 +322,9 @@ ssize_t uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
|
|||||||
char* ds;
|
char* ds;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
if (s == se)
|
||||||
|
return UV_EINVAL;
|
||||||
|
|
||||||
ds = d;
|
ds = d;
|
||||||
|
|
||||||
si = s;
|
si = s;
|
||||||
@ -356,9 +359,10 @@ ssize_t uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d < de)
|
if (d >= de)
|
||||||
*d++ = '\0';
|
return UV_EINVAL;
|
||||||
|
|
||||||
|
*d++ = '\0';
|
||||||
return d - ds; /* Number of bytes written. */
|
return d - ds; /* Number of bytes written. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -100,6 +100,7 @@ TEST_IMPL(utf8_decode1) {
|
|||||||
TEST_IMPL(utf8_decode1_overrun) {
|
TEST_IMPL(utf8_decode1_overrun) {
|
||||||
const char* p;
|
const char* p;
|
||||||
char b[1];
|
char b[1];
|
||||||
|
char c[1];
|
||||||
|
|
||||||
/* Single byte. */
|
/* Single byte. */
|
||||||
p = b;
|
p = b;
|
||||||
@ -113,6 +114,10 @@ TEST_IMPL(utf8_decode1_overrun) {
|
|||||||
ASSERT_EQ((unsigned) -1, uv__utf8_decode1(&p, b + 1));
|
ASSERT_EQ((unsigned) -1, uv__utf8_decode1(&p, b + 1));
|
||||||
ASSERT_PTR_EQ(p, b + 1);
|
ASSERT_PTR_EQ(p, b + 1);
|
||||||
|
|
||||||
|
b[0] = 0x7F;
|
||||||
|
ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 0, c, c + 1));
|
||||||
|
ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 1, c, c + 1));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,8 +151,8 @@ TEST_IMPL(idna_toascii) {
|
|||||||
/* Illegal inputs. */
|
/* Illegal inputs. */
|
||||||
F("\xC0\x80\xC1\x80", UV_EINVAL); /* Overlong UTF-8 sequence. */
|
F("\xC0\x80\xC1\x80", UV_EINVAL); /* Overlong UTF-8 sequence. */
|
||||||
F("\xC0\x80\xC1\x80.com", UV_EINVAL); /* Overlong UTF-8 sequence. */
|
F("\xC0\x80\xC1\x80.com", UV_EINVAL); /* Overlong UTF-8 sequence. */
|
||||||
|
F("", UV_EINVAL);
|
||||||
/* No conversion. */
|
/* No conversion. */
|
||||||
T("", "");
|
|
||||||
T(".", ".");
|
T(".", ".");
|
||||||
T(".com", ".com");
|
T(".com", ".com");
|
||||||
T("example", "example");
|
T("example", "example");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user