libcli: Remove a reference to asn1->ofs
[sfrench/samba-autobuild/.git] / libcli / cldap / cldap.c
index 964cb0a18cdc7a690d285b922542b9e7126ad69d..dd9d40b0c363157a8ad62003f31ff21886d0dec9 100644 (file)
@@ -220,7 +220,6 @@ nomem:
 static bool cldap_socket_recv_dgram(struct cldap_socket *c,
                                    struct cldap_incoming *in)
 {
-       DATA_BLOB blob;
        struct asn1_data *asn1;
        void *p;
        struct cldap_search_state *search;
@@ -230,16 +229,12 @@ static bool cldap_socket_recv_dgram(struct cldap_socket *c,
                goto error;
        }
 
-       blob = data_blob_const(in->buf, in->len);
-
        asn1 = asn1_init(in);
        if (!asn1) {
                goto nomem;
        }
 
-       if (!asn1_load(asn1, blob)) {
-               goto nomem;
-       }
+       asn1_load_nocopy(asn1, in->buf, in->len);
 
        in->ldap_msg = talloc(in, struct ldap_message);
        if (in->ldap_msg == NULL) {
@@ -267,8 +262,11 @@ static bool cldap_socket_recv_dgram(struct cldap_socket *c,
 
        search = talloc_get_type_abort(p, struct cldap_search_state);
        search->response.in = talloc_move(search, &in);
+
        search->response.asn1 = asn1;
-       search->response.asn1->ofs = 0;
+
+       asn1_load_nocopy(search->response.asn1,
+                        search->response.in->buf, search->response.in->len);
 
        DLIST_REMOVE(c->searches.list, search);