From 41ea0d35aeb984cbd3bc3baf96594ab6b67c70e2 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 17 Mar 2004 19:23:48 +0000 Subject: Remove excess logging when probing for the length of the next mb char. Jeremy. (This used to be commit 6339c4690aef7692571dd4c65dd0a12d56a7ffab) --- source3/lib/charcnv.c | 3 +++ source3/smbd/reply.c | 30 +++++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) (limited to 'source3') diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c index ad15788b84..f6028bb134 100644 --- a/source3/lib/charcnv.c +++ b/source3/lib/charcnv.c @@ -1307,6 +1307,7 @@ size_t next_mb_char_size(const char *s) if (!(*s & 0x80)) return 1; /* ascii. */ + conv_silent = True; for ( i = 1; i <=4; i++ ) { smb_ucs2_t uc; if (convert_string(CH_UNIX, CH_UCS2, s, i, &uc, 2, False) == 2) { @@ -1314,10 +1315,12 @@ size_t next_mb_char_size(const char *s) DEBUG(10,("next_mb_char_size: size %u at string %s\n", (unsigned int)i, s)); #endif + conv_silent = False; return i; } } /* We're hosed - we don't know how big this is... */ DEBUG(10,("next_mb_char_size: unknown size at string %s\n", s)); + conv_silent = False; return 1; } diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 0fe73cddc2..f5c4f25e40 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -113,19 +113,23 @@ NTSTATUS check_path_syntax(pstring destname, const pstring srcname) } s++; } else { - switch(next_mb_char_size(s)) { - case 4: - *d++ = *s++; - case 3: - *d++ = *s++; - case 2: - *d++ = *s++; - case 1: - *d++ = *s++; - break; - default: - DEBUG(0,("check_path_syntax: character length assumptions invalid !\n")); - return NT_STATUS_INVALID_PARAMETER; + if (!(*s & 0x80)) { + *d++ = *s++; + } else { + switch(next_mb_char_size(s)) { + case 4: + *d++ = *s++; + case 3: + *d++ = *s++; + case 2: + *d++ = *s++; + case 1: + *d++ = *s++; + break; + default: + DEBUG(0,("check_path_syntax: character length assumptions invalid !\n")); + return NT_STATUS_INVALID_PARAMETER; + } } } } -- cgit