diff options
-rw-r--r-- | lib/util/asn1.c | 10 | ||||
-rw-r--r-- | lib/util/asn1.h | 1 | ||||
-rw-r--r-- | source3/lib/tldap.c | 7 |
3 files changed, 11 insertions, 7 deletions
diff --git a/lib/util/asn1.c b/lib/util/asn1.c index 08c4060fd1..184aeec909 100644 --- a/lib/util/asn1.c +++ b/lib/util/asn1.c @@ -780,6 +780,16 @@ bool asn1_blob(const struct asn1_data *asn1, DATA_BLOB *blob) } /* + Fill in an asn1 struct without making a copy +*/ +void asn1_load_nocopy(struct asn1_data *data, uint8_t *buf, size_t len) +{ + ZERO_STRUCTP(data); + data->data = buf; + data->length = len; +} + +/* check if a ASN.1 blob is a full tag */ NTSTATUS asn1_full_tag(DATA_BLOB blob, uint8_t tag, size_t *packet_size) diff --git a/lib/util/asn1.h b/lib/util/asn1.h index b46494b2ea..b147cccdee 100644 --- a/lib/util/asn1.h +++ b/lib/util/asn1.h @@ -94,6 +94,7 @@ bool asn1_read_enumerated(struct asn1_data *data, int *v); bool asn1_check_enumerated(struct asn1_data *data, int v); bool asn1_write_enumerated(struct asn1_data *data, uint8_t v); bool asn1_blob(const struct asn1_data *asn1, DATA_BLOB *blob); +void asn1_load_nocopy(struct asn1_data *data, uint8_t *buf, size_t len); NTSTATUS asn1_full_tag(DATA_BLOB blob, uint8_t tag, size_t *packet_size); #endif /* _ASN_1_H */ diff --git a/source3/lib/tldap.c b/source3/lib/tldap.c index 4d2cd86f75..2033b4fa59 100644 --- a/source3/lib/tldap.c +++ b/source3/lib/tldap.c @@ -318,13 +318,6 @@ static ssize_t read_ldap_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, return talloc_get_size(*pbuf); } -static void asn1_load_nocopy(struct asn1_data *data, uint8_t *buf, size_t len) -{ - ZERO_STRUCTP(data); - data->data = buf; - data->length = len; -} - struct tldap_msg_state { struct tldap_context *ld; struct tevent_context *ev; |