ldap: fix search control rule identifiers ASN.1 type
authorGarming Sam <garming@catalyst.net.nz>
Wed, 16 Dec 2015 21:33:54 +0000 (10:33 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 9 Mar 2016 09:32:16 +0000 (10:32 +0100)
Wireshark and Windows both expect matching rule identifiers to be
given the ContextSimple type identifier instead of the Octet String.

As far as we can tell this is not formally specified anywhere.

Pair-programmed-with: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/libcli/ldap/ldap_controls.c

index 0a23cc79a4716c9265ed27e6c5c772e45c122f19..98e690d050515b72075fe7b4cf5867f64d1d7300 100644 (file)
@@ -757,7 +757,8 @@ static bool encode_server_sort_request(void *mem_ctx, void *in, DATA_BLOB *out)
                }
 
                if (lssc[num]->orderingRule) {
-                       if (!asn1_write_OctetString(data, lssc[num]->orderingRule, strlen(lssc[num]->orderingRule))) {
+                       DATA_BLOB order = data_blob_string_const(lssc[num]->orderingRule);
+                       if (!asn1_write_ContextSimple(data, 0, &order)) {
                                return false;
                        }
                }