CVS update: samba/source/include

tridge at samba.org tridge at samba.org
Thu Jul 31 14:01:32 EST 2003


Date:	Thu Jul 31 04:01:32 2003
Author:	tridge

Update of /home/cvs/samba/source/include
In directory dp.samba.org:/tmp/cvs-serv31811

Modified Files:
      Tag: SAMBA_3_0
	byteorder.h 
Log Message:
This is a critical bug fix for a data corruption bug. If you
maintain another tree then please apply!

On non-X86 machines out byte-order macros fails for one particular
value. If you asked for IVAL() of 0xFFFFFFFF and assigned it to a 64
bit quantity then you got a 63 bit number 0x7FFFFFFFFFFFFFFF rather
than the expected 0xFFFFFFFF. This is due to some rather bizarre and
obscure sign extension rules to do with unsigned chars and arithmetic
operators (basically if you | together two unsigned chars you get a
signed result!)

This affected a byte range lock using the large lockingX format and a
lock of offset 0 and length 0xFFFFFFFF. Microsoft Excel does one of
these locks when opening a .csv file. If the platform you run on does
not then handle locks of length 0x7FFFFFFFFFFFFFFF then the posix lock
fails and the client is given a lockingX failure. This causes the .csv
file to be trunated!!




Revisions:
byteorder.h		1.34.2.1 => 1.34.2.2
	http://www.samba.org/cgi-bin/cvsweb/samba/source/include/byteorder.h.diff?r1=1.34.2.1&r2=1.34.2.2



More information about the samba-cvs mailing list