diff --git a/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod b/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod index 7d0e8841d33a01619e0adea12a0c7b2654218757..520ef2e7085c50b5cb3bac66268f309adc525ee5 100644 --- a/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod +++ b/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod @@ -218,7 +218,7 @@ mapping(int:program(.Types.Object)) universal_types = mapping(int:program(.Types.Object))|void types) { types = types ? universal_types+types : universal_types; - return der_decode(Stdio.Buffer(data), types); + return der_decode(Stdio.Buffer(data)->set_error_mode(1), types); } //! Works just like @[simple_der_decode], except it will return diff --git a/lib/modules/Standards.pmod/ASN1.pmod/testsuite.in b/lib/modules/Standards.pmod/ASN1.pmod/testsuite.in index 7ddd35edc83200d898998fc78ae88914e3685e1b..76e6a100f2795a313f46ea4f6768ee7cf1d64a42 100644 --- a/lib/modules/Standards.pmod/ASN1.pmod/testsuite.in +++ b/lib/modules/Standards.pmod/ASN1.pmod/testsuite.in @@ -2,6 +2,8 @@ START_MARKER test_do( add_constant("Types", Standards.ASN1.Types); ) +test_eval_error(Standards.ASN1.Decode.simple_der_decode("")) + define(test_decode,[[ test_eq(sprintf("%O",Standards.ASN1.Decode.simple_der_decode(String.hex2string($1-" ")))-"Standards.ASN1.",$2) test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string($1-" "))->get_der(),