summaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-04-30 05:12:05 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-04-30 05:12:05 -0700
commit03420865e10d05d60d592fe8649e4853dc69ca5a (patch)
tree105d173e5267931d794e429ee7c64f83e526a521 /fs/udf
parenta2e63709b53312002009c564460af34520c62f98 (diff)
parent6da6c0db5316275015e8cc2959f12a17584aeb64 (diff)
downloadop-kernel-dev-03420865e10d05d60d592fe8649e4853dc69ca5a.zip
op-kernel-dev-03420865e10d05d60d592fe8649e4853dc69ca5a.tar.gz
Merge 4.17-rc3 into staging-next
We want the staging fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/unicode.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/udf/unicode.c b/fs/udf/unicode.c
index f897e55..16a8ad2 100644
--- a/fs/udf/unicode.c
+++ b/fs/udf/unicode.c
@@ -28,6 +28,9 @@
#include "udf_sb.h"
+#define SURROGATE_MASK 0xfffff800
+#define SURROGATE_PAIR 0x0000d800
+
static int udf_uni2char_utf8(wchar_t uni,
unsigned char *out,
int boundlen)
@@ -37,6 +40,9 @@ static int udf_uni2char_utf8(wchar_t uni,
if (boundlen <= 0)
return -ENAMETOOLONG;
+ if ((uni & SURROGATE_MASK) == SURROGATE_PAIR)
+ return -EINVAL;
+
if (uni < 0x80) {
out[u_len++] = (unsigned char)uni;
} else if (uni < 0x800) {
OpenPOWER on IntegriCloud