]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
fixes big endian unistring problems. Need to check that it didn't
authorHerb Lewis <herb@samba.org>
Fri, 24 Aug 2001 19:17:43 +0000 (19:17 +0000)
committerHerb Lewis <herb@samba.org>
Fri, 24 Aug 2001 19:17:43 +0000 (19:17 +0000)
break little-endian machines.

source/lib/util_unistr.c

index 48bff4c41cce8bde04d142b0eba87e03948de8f9..d4c71ae13f9beff7bff41d1501c929c52e125b4c 100644 (file)
@@ -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;
 }
 
 /*******************************************************************