diff options
author | Andrew Bartlett <abartlet@samba.org> | 2003-07-27 02:28:25 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2003-07-27 02:28:25 +0000 |
commit | 455bb6de903ca3950d965b29190c09f116d91889 (patch) | |
tree | 997319ee22f82f2d2e1c06c365b71c8f385c48ad /source3/smbd | |
parent | 422c2467a0d23c91feb5008ac2244b4054c27b43 (diff) | |
download | samba-455bb6de903ca3950d965b29190c09f116d91889.tar.gz samba-455bb6de903ca3950d965b29190c09f116d91889.tar.bz2 samba-455bb6de903ca3950d965b29190c09f116d91889.zip |
Some small fixes to our charset conversion code:
- Treat the NMB names in the 'session request' packet as 'ASCII'. This means
that we do not get invalid multibyte from the wire, even if we truncate
in the conversion. (Otherwise we panic when we try to strupper_m it).
- Remove acnv_uxu2(), as it was duplicated by push_ucs2_allocate()
- Remove acnv_dosu2(), as it is not used.
- In push_ucs2(), with the STR_UPPER flag, do the case conversion *after*
the UCS2 conversion, when it we know that the length can't change. Also
faster, as we don't need to do another 2 UCS2 conversions.
Andrew Bartlett
(This used to be commit 912035af1178424583d0bf887a391a0cac2acd87)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/mangle_hash.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source3/smbd/mangle_hash.c b/source3/smbd/mangle_hash.c index ac8e425fd3..ac2d7681e8 100644 --- a/source3/smbd/mangle_hash.c +++ b/source3/smbd/mangle_hash.c @@ -313,6 +313,7 @@ static BOOL is_8_3(const char *fname, BOOL check_case, BOOL allow_wildcards) const char *f; smb_ucs2_t *ucs2name; NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + size_t size; if (!fname || !*fname) return False; @@ -324,9 +325,9 @@ static BOOL is_8_3(const char *fname, BOOL check_case, BOOL allow_wildcards) if (strlen(f) > 12) return False; - ucs2name = acnv_uxu2(f); - if (!ucs2name) { - DEBUG(0,("is_8_3: internal error acnv_uxu2() failed!\n")); + size = push_ucs2_allocate(&ucs2name, f); + if (size == (size_t)-1) { + DEBUG(0,("is_8_3: internal error push_ucs2_allocate() failed!\n")); goto done; } |