UNICODE issues.
authorLuke Leighton <lkcl@samba.org>
Thu, 11 Feb 1999 22:12:49 +0000 (22:12 +0000)
committerLuke Leighton <lkcl@samba.org>
Thu, 11 Feb 1999 22:12:49 +0000 (22:12 +0000)
(This used to be commit 6a437cfb33f24913e0c1f8484c0b08ef317e513b)

source3/include/proto.h
source3/lib/util_unistr.c
source3/rpc_server/srv_pipe.c
source3/smbd/chgpasswd.c

index e564163421a81f0b415b2caff89d33ef4485790f..c408545907de6ba12a8e55f64a50a1114e5f762c 100644 (file)
@@ -566,8 +566,8 @@ void split_at_last_component(char *path, char *front, char sep, char *back);
 
 int PutUniCode(char *dst,char *src);
 char *skip_unicode_string(char *buf,int n);
-char *unistrn2(uint16 *src, int len);
-char *unistr2(uint16 *src);
+char *unistrn2(char *src, int len);
+char *unistr2(char *src);
 char *unistr2_to_str(UNISTR2 *str);
 uint32 buffer2_to_uint32(BUFFER2 *str);
 char *buffer2_to_str(BUFFER2 *str);
index 641f891f837d40133da2e0e54bc90d45c8dc393a..2e908cbd7a6bee846796d1c76eec6f26ba3afd20 100644 (file)
@@ -62,7 +62,7 @@ Return a ascii version of a little-endian unicode string.
 Hack alert: uses fixed buffer(s) and only handles ascii strings
 ********************************************************************/
 
-char *unistrn2(uint16 *src, int len)
+char *unistrn2(char *src, int len)
 {
        static char lbufs[8][MAXUNI];
        static int nexti;
@@ -71,9 +71,9 @@ char *unistrn2(uint16 *src, int len)
 
        nexti = (nexti+1)%8;
 
-       for (p = lbuf; *src && p-lbuf < MAXUNI-2 && len > 0; len--, src++)
+       for (p = lbuf; *src && p-lbuf < MAXUNI-2 && len > 0; len--, src += 2)
        {
-               *p++ = (*src & 0xff);
+               *p++ = SVAL(src, 0) & 0xFF;
        }
 
        *p = 0;
@@ -88,16 +88,16 @@ Return a ascii version of a little-endian unicode string.
 Hack alert: uses fixed buffer(s) and only handles ascii strings
 ********************************************************************/
 
-char *unistr2(uint16 *src)
+char *unistr2(char *src)
 {
        char *lbuf = lbufs[nexti];
        char *p;
 
        nexti = (nexti+1)%8;
 
-       for (p = lbuf; *src && p-lbuf < MAXUNI-2; p++, src++)
+       for (p = lbuf; *src && p-lbuf < MAXUNI-2; p++, src += 2)
        {
-               *p = (*src & 0xff);
+               *p = SVAL(src, 0) & 0xFF;
        }
 
        *p = 0;
@@ -260,7 +260,7 @@ char *unistr(char *buf)
 
        for (p = lbuf; *buf && p-lbuf < MAXUNI-2; p++, buf += 2)
        {
-               *p = *buf;
+               *p = SVAL(buf, 0) & 0xFF;
        }
        *p = 0;
        return lbuf;
index f8d882cd0c85a6717b7c4e9f5a32e78878eb7913..5908fe06b5258bb74d3792e117c958f8dccc35d9 100644 (file)
@@ -225,9 +225,9 @@ static BOOL api_pipe_ntlmssp_verify(pipes_struct *p)
 
        if (IS_BITS_SET_ALL(p->ntlmssp_chal.neg_flags, NTLMSSP_NEGOTIATE_UNICODE))
        {
-               fstrcpy(p->user_name, unistrn2((uint16*)p->ntlmssp_resp.user  , p->ntlmssp_resp.hdr_usr   .str_str_len/2));
-               fstrcpy(p->domain   , unistrn2((uint16*)p->ntlmssp_resp.domain, p->ntlmssp_resp.hdr_domain.str_str_len/2));
-               fstrcpy(p->wks      , unistrn2((uint16*)p->ntlmssp_resp.wks   , p->ntlmssp_resp.hdr_wks   .str_str_len/2));
+               fstrcpy(p->user_name, unistrn2(p->ntlmssp_resp.user  , p->ntlmssp_resp.hdr_usr   .str_str_len/2));
+               fstrcpy(p->domain   , unistrn2(p->ntlmssp_resp.domain, p->ntlmssp_resp.hdr_domain.str_str_len/2));
+               fstrcpy(p->wks      , unistrn2(p->ntlmssp_resp.wks   , p->ntlmssp_resp.hdr_wks   .str_str_len/2));
        }
        else
        {
index 9791d3a38ee8f9a4c9dd16023413128db67e109e..a2e75ecc431e7e37908411aba8fa35f060e5deed 100644 (file)
@@ -693,7 +693,7 @@ BOOL check_oem_password(char *user,
                int uni_pw_len = new_pw_len;
                char *pw;
                new_pw_len /= 2;
-               pw = unistrn2((uint16*)(&lmdata[512-uni_pw_len]), new_pw_len);
+               pw = unistrn2(&lmdata[512-uni_pw_len], new_pw_len);
                memcpy(new_passwd, pw, new_pw_len+1);
        }
        else