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();
 

Reply via email to