The branch, v4-0-test has been updated via f7a9cb0 Fix is_legal_name() to not emit character conversion error messages. from 5f3fa21 s3:smb2_find: Return that timestamps do not exist as directories
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test - Log ----------------------------------------------------------------- commit f7a9cb0eca0b2b2ed07e49ef56cd35dded3b2fe5 Author: Jeremy Allison <j...@samba.org> Date: Tue Sep 10 10:46:18 2013 -0700 Fix is_legal_name() to not emit character conversion error messages. Using next_codepoint() does the same check, but without the conversion message. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Volker Lendecke <v...@samba.org> (cherry picked from commit 776db7d38597a29536e4127837ffa3b4f4ce35ab) Fix bug #10139 - valid utf8 filenames cause "invalid conversion error" messages. Autobuild-User(v4-0-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-0-test): Thu Sep 19 12:06:53 CEST 2013 on sn-devel-104 ----------------------------------------------------------------------- Summary of changes: source3/smbd/mangle_hash2.c | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/mangle_hash2.c b/source3/smbd/mangle_hash2.c index 655c727..c2910f8 100644 --- a/source3/smbd/mangle_hash2.c +++ b/source3/smbd/mangle_hash2.c @@ -626,21 +626,17 @@ static bool is_legal_name(const char *name) while (*name) { if (((unsigned int)name[0]) > 128 && (name[1] != 0)) { /* Possible start of mb character. */ - char mbc[2]; size_t size = 0; + (void)next_codepoint(name, &size); /* - * Note that if CH_UNIX is utf8 a string may be 3 - * bytes, but this is ok as mb utf8 characters don't - * contain embedded ascii bytes. We are really checking - * for mb UNIX asian characters like Japanese (SJIS) here. - * JRA. + * Note that we're only looking for multibyte + * encoding here. No encoding with a length > 1 + * contains invalid characters. */ - if (convert_string(CH_UNIX, CH_UTF16LE, name, 2, mbc, 2, &size)) { - if (size == 2) { - /* Was a good mb string. */ - name += 2; - continue; - } + if (size > 1) { + /* Was a mb string. */ + name += size; + continue; } } -- Samba Shared Repository