alistair23-linux/fs/cifs
Jeff Layton c2ccf53dd0 cifs: add new case-insensitive conversion routines that are based on wchar_t's
The existing NLS case conversion routines do not appropriately handle
the (now common) case where the local host is using UTF8. This is
because nls_utf8 has no support at all for converting a utf8 string
between cases and the NLS infrastructure in general cannot handle
a multibyte input character.

In any case, what we really need for cifs is to emulate how we expect
the server to convert the character to upper or lowercase. Thus, even
if we had routines that could handle utf8 case conversion, we likely
would end up with the wrong result if the name ends up being in the
upper planes.

This patch adds a new scheme for doing unicode case conversion. The
case conversion tables that Microsoft has published for Windows 8
have been converted to a set of lookup tables, and a routine is
added to convert a wchar_t from lower to uppercase using those
tables.

Reported-and-Tested-by: Jan-Marek Glogowski <glogow@fbihome.de>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
2013-09-08 14:38:05 -05:00
..
asn1.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cache.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_debug.c cifs: try to handle the MUST SecurityFlags sanely 2013-06-26 17:31:55 -05:00
cifs_debug.h [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_dfs_ref.c cifs: fix composing of mount options for DFS referrals 2013-05-24 13:08:31 -05:00
cifs_fs_sb.h cifs: Convert struct cifs_sb_info to use kuids and kgids 2013-02-13 07:28:54 -08:00
cifs_spnego.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_spnego.h [CIFS] Rename three structures to avoid camel case 2011-05-27 04:34:02 +00:00
cifs_unicode.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_unicode.h cifs: add new case-insensitive conversion routines that are based on wchar_t's 2013-09-08 14:38:05 -05:00
cifs_uniupr.h cifs: correction of unicode header files 2010-08-20 00:46:42 +00:00
cifsacl.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifsacl.h cifs: fix SID binary to string conversion 2012-12-11 11:48:49 -06:00
cifsencrypt.c cifs: fix bad error handling in crypto code 2013-07-31 13:44:59 -05:00
cifsfs.c cifs: display iocharset= option in /proc/mounts 2013-09-08 14:24:30 -05:00
cifsfs.h Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 2013-07-03 14:06:30 -07:00
cifsglob.h cifs: Move and expand MAX_SERVER_SIZE definition 2013-09-08 14:34:22 -05:00
cifspdu.h CIFS: Implement follow_link for nounix CIFS mounts 2013-09-08 14:27:41 -05:00
cifsproto.h CIFS: Implement follow_link for nounix CIFS mounts 2013-09-08 14:27:41 -05:00
cifssmb.c CIFS: Implement follow_link for nounix CIFS mounts 2013-09-08 14:27:41 -05:00
connect.c cifs: Move string length definitions to uapi 2013-09-08 14:34:11 -05:00
dir.c CIFS: Reconnect durable handles for SMB2 2013-07-10 13:08:40 -05:00
dns_resolve.c cifs: fix composing of mount options for DFS referrals 2013-05-24 13:08:31 -05:00
dns_resolve.h
export.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
file.c direct-io: Handle O_(D)SYNC AIO 2013-09-04 09:23:46 -04:00
fscache.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
fscache.h [CIFS] Rename three structures to avoid camel case 2011-05-27 04:34:02 +00:00
inode.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
ioctl.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
Kconfig [CIFS] SMB3 Signing enablement 2013-06-26 23:45:05 -05:00
link.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
Makefile cifs: add new case-insensitive conversion routines that are based on wchar_t's 2013-09-08 14:38:05 -05:00
misc.c cifs: track the enablement of signing in the TCP_Server_Info 2013-06-24 01:56:43 -05:00
netmisc.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
nterr.c CIFS: Rename 7 error codes to NT_ style 2012-07-24 10:25:10 -05:00
nterr.h CIFS: Rename 7 error codes to NT_ style 2012-07-24 10:25:10 -05:00
ntlmssp.h CIFS: Add session setup/logoff capability for SMB2 2012-07-24 21:54:57 +04:00
readdir.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
rfc1002pdu.h
sess.c cifs: Move string length definitions to uapi 2013-09-08 14:34:11 -05:00
smb1ops.c CIFS: Implement follow_link for nounix CIFS mounts 2013-09-08 14:27:41 -05:00
smb2file.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2glob.h [CIFS] SMB3 Signing enablement 2013-06-26 23:45:05 -05:00
smb2inode.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2maperror.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
smb2misc.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2ops.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2pdu.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2pdu.h CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2proto.h CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2status.h CIFS: Add SMB2 status codes 2012-07-24 10:25:13 -05:00
smb2transport.c cifs: fix bad error handling in crypto code 2013-07-31 13:44:59 -05:00
smbencrypt.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
smberr.h
smbfsctl.h Update headers to update various SMB3 ioctl definitions 2013-06-24 01:56:47 -05:00
transport.c Power management and ACPI updates for 3.11-rc1 2013-07-03 14:35:40 -07:00
winucase.c cifs: add new case-insensitive conversion routines that are based on wchar_t's 2013-09-08 14:38:05 -05:00
xattr.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00