summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-07-26 00:10:45 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:00:16 -0500
commit7fb9e6a860b47eaf82589b0ebbcd34dbd6ed5df4 (patch)
tree28bac741ed504e53defb8d0672daad3dfaf9a042 /source3/include
parentbf3086156698a9026b0636dbe1acc7386c3d4b39 (diff)
downloadsamba-7fb9e6a860b47eaf82589b0ebbcd34dbd6ed5df4.tar.gz
samba-7fb9e6a860b47eaf82589b0ebbcd34dbd6ed5df4.tar.bz2
samba-7fb9e6a860b47eaf82589b0ebbcd34dbd6ed5df4.zip
r8762: Attempt to fix the winbindd crashing bug on Solaris (can't remember
the bugid). Make the functions in lib/util_unistr.c odd-alignment safe using some evil macros. Needs testing on bigendian. Jeremy. (This used to be commit 871c647bc3ee465e613cba260d9cd7e66e47b68a)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/smb.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 097fb87a3f..d3374ccafc 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -150,6 +150,7 @@ typedef union unid_t {
/*
* SMB UCS2 (16-bit unicode) internal type.
+ * smb_ucs2_t is *always* in little endian format.
*/
typedef uint16 smb_ucs2_t;
@@ -167,6 +168,10 @@ typedef smb_ucs2_t wfstring[FSTRING_LEN];
/* turn a 7 bit character into a ucs2 character */
#define UCS2_CHAR(c) ((c) << UCS2_SHIFT)
+/* Copy into a smb_ucs2_t from a possibly unaligned buffer. Return the copied smb_ucs2_t */
+#define COPY_UCS2_CHAR(dest,src) (((unsigned char *)(dest))[0] = ((unsigned char *)(src))[0],\
+ ((unsigned char *)(dest))[1] = ((unsigned char *)(src))[1], (dest))
+
/* pipe string names */
#define PIPE_LANMAN "\\PIPE\\LANMAN"
#define PIPE_SRVSVC "\\PIPE\\srvsvc"