1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

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 <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
Jeremy Allison 2013-09-10 10:46:18 -07:00
parent 40db563791
commit 776db7d385

View File

@ -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;
}
}