summaryrefslogtreecommitdiffstats
path: root/fs/nls/nls_base.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2009-10-27 18:45:17 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2009-10-27 18:45:17 -0400
commite343eb0d60f74547e0aeb5bd151105c2e6cfe588 (patch)
tree92586df0daf3298262a957640e5c86679c963f41 /fs/nls/nls_base.c
parentddc04fd4d5163aee9ebdb38a56c365b602e2b7b7 (diff)
parent012abeea669ea49636cf952d13298bb68654146a (diff)
downloadlinux-e343eb0d60f74547e0aeb5bd151105c2e6cfe588.tar.gz
linux-e343eb0d60f74547e0aeb5bd151105c2e6cfe588.tar.bz2
linux-e343eb0d60f74547e0aeb5bd151105c2e6cfe588.zip
Merge commit 'v2.6.32-rc5' into for-2.6.33
Diffstat (limited to 'fs/nls/nls_base.c')
-rw-r--r--fs/nls/nls_base.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
index 2224b4d07bf0..44a88a9fa2c8 100644
--- a/fs/nls/nls_base.c
+++ b/fs/nls/nls_base.c
@@ -124,10 +124,10 @@ int utf8s_to_utf16s(const u8 *s, int len, wchar_t *pwcs)
while (*s && len > 0) {
if (*s & 0x80) {
size = utf8_to_utf32(s, len, &u);
- if (size < 0) {
- /* Ignore character and move on */
- size = 1;
- } else if (u >= PLANE_SIZE) {
+ if (size < 0)
+ return -EINVAL;
+
+ if (u >= PLANE_SIZE) {
u -= PLANE_SIZE;
*op++ = (wchar_t) (SURROGATE_PAIR |
((u >> 10) & SURROGATE_BITS));