TDB signed vs. unsigned char (was Re: [SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-554-gf942cb6)

Stefan (metze) Metzmacher metze at
Wed Apr 1 16:10:40 GMT 2009

Jeremy Allison schrieb:
> On Wed, Apr 01, 2009 at 12:39:28PM +0200, Stefan (metze) Metzmacher wrote:
>> Hi Jeremy,
>>> commit f942cb616e981e5370fab122969127de0910b58b
>>> Author: Jeremy Allison <jra at>
>>> Date:   Wed Mar 18 15:44:13 2009 -0700
>>>     Fix bug #6195 - Migrating from 3.0.x to 3.3.x can fail to update passdb.tdb correctly.
>>>     This is a really nasty one to fix as in order to successfully update the
>>>     passdb.tdb we must do the equivalent of a tdbbackup to move to the new hash
>>>     values before we do the upgrade.
>>>     Jeremy.
>> Sorry, that I "introducted" the change that triggers with problems...
> No problem, everyone makes mistakes (as we have seen today :-).


>> But it shows once again that we really need to use 'uint8_t *' instead
>> of 'char *' to represent raw bytes! As the same problem is there,
>> if we copy passdb.tdb from a machine where char is signed to a machine
>> were char is unsigned, while using exactly the same source on both machines.
>> So we should really try to get rid of all 'char *buf' pointers we have,
> Yeah, we should start cleaning up the code here (much of which
> is extremely old of course :-).
>> but as the above example shows we need to be extremly careful and add
>> explicit cast in the right spots in order to avoid upgrade problems.
> It's too late for that cast now, there were existing databases out there.
> (I did think about doing that, but we couldn't get away with it).

I mean for future code changes.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url :

More information about the samba-technical mailing list