1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-01 05:47:28 +03:00

lib: Use asn1_extract_blob()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Volker Lendecke 2016-01-02 20:10:53 +01:00 committed by Jeremy Allison
parent 7b7aa016df
commit a93946b2fe
5 changed files with 45 additions and 34 deletions

View File

@ -357,11 +357,12 @@ ssize_t spnego_write_data(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct spnego_da
break;
}
if (!asn1_has_error(asn1)) {
*blob = data_blob_talloc(mem_ctx, asn1->data, asn1->length);
ret = asn1->ofs;
if (!asn1_extract_blob(asn1, mem_ctx, blob)) {
goto err;
}
ret = asn1->ofs;
err:
asn1_free(asn1);
@ -427,8 +428,7 @@ bool spnego_write_mech_types(TALLOC_CTX *mem_ctx,
goto err;
}
*blob = data_blob_talloc(mem_ctx, asn1->data, asn1->length);
if (blob->length != asn1->length) {
if (!asn1_extract_blob(asn1, mem_ctx, blob)) {
goto err;
}

View File

@ -691,7 +691,10 @@ _PUBLIC_ bool ldap_encode(struct ldap_message *msg,
if (!asn1_pop_tag(data)) goto err;
*result = data_blob_talloc(mem_ctx, data->data, data->length);
if (!asn1_extract_blob(data, mem_ctx, result)) {
goto err;
}
asn1_free(data);
return true;

View File

@ -79,7 +79,9 @@ DATA_BLOB spnego_gen_negTokenInit(TALLOC_CTX *ctx,
if (!asn1_pop_tag(data)) goto err;
ret = data_blob_talloc(ctx, data->data, data->length);
if (!asn1_extract_blob(data, ctx, &ret)) {
goto err;
}
err:
@ -250,7 +252,9 @@ DATA_BLOB spnego_gen_krb5_wrap(TALLOC_CTX *ctx, const DATA_BLOB ticket, const ui
if (!asn1_write(data, ticket.data, ticket.length)) goto err;
if (!asn1_pop_tag(data)) goto err;
ret = data_blob_talloc(ctx, data->data, data->length);
if (!asn1_extract_blob(data, ctx, &ret)) {
goto err;
}
err:
@ -377,7 +381,9 @@ DATA_BLOB spnego_gen_auth(TALLOC_CTX *ctx, DATA_BLOB blob)
if (!asn1_pop_tag(data)) goto err;
if (!asn1_pop_tag(data)) goto err;
ret = data_blob_talloc(ctx, data->data, data->length);
if (!asn1_extract_blob(data, ctx, &ret)) {
goto err;
}
err:

View File

@ -422,7 +422,9 @@ static DATA_BLOB gensec_gssapi_gen_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLO
if (!asn1_pop_tag(data)) goto err;
ret = data_blob_talloc(mem_ctx, data->data, data->length);
if (!asn1_extract_blob(data, mem_ctx, &ret)) {
goto err;
}
asn1_free(data);
return ret;

View File

@ -512,10 +512,10 @@ static bool encode_verify_name_request(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -716,10 +716,10 @@ static bool encode_server_sort_response(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -774,10 +774,10 @@ static bool encode_server_sort_request(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -809,10 +809,10 @@ static bool encode_extended_dn_request(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -837,10 +837,10 @@ static bool encode_sd_flags_request(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -865,10 +865,10 @@ static bool encode_search_options_request(void *mem_ctx, void *in, DATA_BLOB *ou
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -897,10 +897,10 @@ static bool encode_paged_results_request(void *mem_ctx, void *in, DATA_BLOB *out
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -935,10 +935,10 @@ static bool encode_asq_control(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -971,10 +971,10 @@ static bool encode_dirsync_request(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -1047,10 +1047,10 @@ static bool encode_vlv_request(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -1089,10 +1089,10 @@ static bool encode_vlv_response(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
@ -1140,10 +1140,10 @@ static bool encode_openldap_dereference(void *mem_ctx, void *in, DATA_BLOB *out)
return false;
}
*out = data_blob_talloc(mem_ctx, data->data, data->length);
if (out->data == NULL) {
if (!asn1_extract_blob(data, mem_ctx, out)) {
return false;
}
talloc_free(data);
return true;
}