diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/asn1/c_src/asn1_erl_nif.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/asn1/c_src/asn1_erl_nif.c b/lib/asn1/c_src/asn1_erl_nif.c index 721b3dead5..432148295e 100644 --- a/lib/asn1/c_src/asn1_erl_nif.c +++ b/lib/asn1/c_src/asn1_erl_nif.c @@ -1049,7 +1049,10 @@ int ber_encode(ErlNifEnv *env, ERL_NIF_TERM term, mem_chunk_t **curr, unsigned i ERL_NIF_TERM head, tail; unsigned int tmp_cnt; - if (!enif_get_list_cell(env, tv[1], &head, &tail)) { + if(!enif_make_reverse_list(env, tv[1], &head)) + return ASN1_ERROR; + + if (!enif_get_list_cell(env, head, &head, &tail)) { if (enif_is_empty_list(env, tv[1])) { *((*curr)->curr) = 0; (*curr)->curr -= 1; |