summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-07-15 19:47:31 (GMT)
committerBrad King <brad.king@kitware.com>2024-07-15 19:55:23 (GMT)
commit890beb19e6fdb23d7cfeeac212d7fe3a3d98e409 (patch)
treee8802f45c025b1a5c6210ee5ce9d6eac45d19d41
parentb9e2f6828fbeb20b860736234c60cb67d4413bdf (diff)
downloadCMake-890beb19e6fdb23d7cfeeac212d7fe3a3d98e409.zip
CMake-890beb19e6fdb23d7cfeeac212d7fe3a3d98e409.tar.gz
CMake-890beb19e6fdb23d7cfeeac212d7fe3a3d98e409.tar.bz2
libuv: backport IDNA input/output hardening fixes
Backport libuv commit `0f2d7e78` (fix: always zero-terminate idna output, 2024-01-18, `v1.48.0~4`) and libuv commit `3530bcc3` (fix: reject zero-length idna inputs, 2024-01-18, `v1.48.0~3`). Fixes: #26112
-rw-r--r--Utilities/cmlibuv/src/idna.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Utilities/cmlibuv/src/idna.c b/Utilities/cmlibuv/src/idna.c
index 93d982c..858b19d 100644
--- a/Utilities/cmlibuv/src/idna.c
+++ b/Utilities/cmlibuv/src/idna.c
@@ -274,6 +274,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
char* ds;
int rc;
+ if (s == se)
+ return UV_EINVAL;
+
ds = d;
si = s;
@@ -308,8 +311,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
return rc;
}
- if (d < de)
- *d++ = '\0';
+ if (d >= de)
+ return UV_EINVAL;
+ *d++ = '\0';
return d - ds; /* Number of bytes written. */
}