svn commit: samba r19126 - in branches/SAMBA_3_0/source/lib/socket_wrapper: .

tridge at tridge at
Fri Oct 6 22:25:34 GMT 2006


 > > I think we should change TDB_DATA to use unsigned char *
 > > so that we get the same warnings in samba 3 and 4.
 > > 
 > > But we need to fix all callers in samba3...
 > Why not change Samba4?

The problem with it being 'char *' is that it contains raw data, and
'char *' will be signed on some platforms and unsigned on others. That
means that a bug may happen on only some platforms, if someone uses
one of the bytes in a calculation. It also tends to spread, as
programmers declare a 'char *' when pulling data out of the TDB_DATA,
and that in turn changes what they declare other functions as.

Ideally we'd only use 'char *' when it really is a string. While we
commonly do put strings in a TDB_DATA, we also put a lot of non-string
data, so we should try to ensure the type has the same properties on
all platforms.

Cheers, Tridge

PS: making the sign of 'char' unspecified in the C standard was a _huge_
mistake :(

More information about the samba-technical mailing list