From be184b26620b64af6b7114fa29f2c2b525fa1cb8 Mon Sep 17 00:00:00 2001 From: Herb Lewis Date: Fri, 24 Aug 2001 19:17:43 +0000 Subject: fixes big endian unistring problems. Need to check that it didn't break little-endian machines. (This used to be commit 0f08e79030419b778c1229712c98b839faaf734f) --- source3/lib/util_unistr.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source3/lib/util_unistr.c') diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c index 48bff4c41c..d4c71ae13f 100644 --- a/source3/lib/util_unistr.c +++ b/source3/lib/util_unistr.c @@ -159,6 +159,7 @@ static smb_unicode_table_t map_table2[] = { static unsigned char map_table_flags(smb_ucs2_t v) { + v = SVAL(&v,0); if (v < TABLE1_BOUNDARY) return map_table1[v].flags; if (v >= TABLE2_BOUNDARY) return map_table2[v - TABLE2_BOUNDARY].flags; return 0; @@ -166,6 +167,7 @@ static unsigned char map_table_flags(smb_ucs2_t v) static smb_ucs2_t map_table_lower(smb_ucs2_t v) { + v = SVAL(&v,0); if (v < TABLE1_BOUNDARY) return map_table1[v].lower; if (v >= TABLE2_BOUNDARY) return map_table2[v - TABLE2_BOUNDARY].lower; return v; @@ -173,6 +175,7 @@ static smb_ucs2_t map_table_lower(smb_ucs2_t v) static smb_ucs2_t map_table_upper(smb_ucs2_t v) { + v = SVAL(&v,0); if (v < TABLE1_BOUNDARY) return map_table1[v].upper; if (v >= TABLE2_BOUNDARY) return map_table2[v - TABLE2_BOUNDARY].upper; return v; @@ -202,7 +205,9 @@ int islower_w( smb_ucs2_t val) smb_ucs2_t toupper_w( smb_ucs2_t val ) { - return map_table_upper(val); + val = map_table_upper(val); + val = SVAL(&val,0); + return val; } /******************************************************************* @@ -211,7 +216,9 @@ smb_ucs2_t toupper_w( smb_ucs2_t val ) smb_ucs2_t tolower_w( smb_ucs2_t val ) { - return map_table_lower(val); + val = map_table_lower(val); + val = SVAL(&val,0); + return val; } /******************************************************************* -- cgit