Author: vlendec Date: 2004-08-31 05:23:31 +0000 (Tue, 31 Aug 2004) New Revision: 2120
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/trunk/source&rev=2120&nolog=1 Log: Fix bug found by Love H?\195?\182rnquist ?\195?\133strand: asn1_write_Integer needs to push stuff little endian. samba4-developers: This needs merging to 4. Thanks! Volker Modified: trunk/source/libsmb/asn1.c trunk/source/utils/net_ads.c Changeset: Modified: trunk/source/libsmb/asn1.c =================================================================== --- trunk/source/libsmb/asn1.c 2004-08-31 02:57:49 UTC (rev 2119) +++ trunk/source/libsmb/asn1.c 2004-08-31 05:23:31 UTC (rev 2120) @@ -107,15 +107,23 @@ return True; } +static void push_int_littleendian(ASN1_DATA *data, int i) +{ + uint8 lowest = i & 0xFF; + i = i >> 8; + if (i != 0) + push_int_littleendian(data, i); + + asn1_write_uint8(data, lowest); +} + + /* write an integer */ BOOL asn1_write_Integer(ASN1_DATA *data, int i) { if (!asn1_push_tag(data, ASN1_INTEGER)) return False; - do { - asn1_write_uint8(data, i); - i = i >> 8; - } while (i); + push_int_littleendian(data, i); return asn1_pop_tag(data); } Modified: trunk/source/utils/net_ads.c =================================================================== --- trunk/source/utils/net_ads.c 2004-08-31 02:57:49 UTC (rev 2119) +++ trunk/source/utils/net_ads.c 2004-08-31 05:23:31 UTC (rev 2120) @@ -1307,6 +1307,8 @@ destroy_ldap_message(msg); destroy_ldap_message(result); } + + conn->next_msgid = 1000; msg = new_ldap_message();