diff --git a/skeletons/NativeReal.c b/skeletons/NativeReal.c index 594bdb5f55ac81bb11ddde3a6b960670af6e3bf0..810d510b5509490c75c63cb5bc185f3233778e6a 100644 --- a/skeletons/NativeReal.c +++ b/skeletons/NativeReal.c @@ -127,6 +127,9 @@ NativeReal_encode_der(asn_TYPE_descriptor_t *td, void *ptr, asn_enc_rval_t erval; REAL_t tmp; + /* Prepare a temporary clean structure */ + memset(&tmp, 0, sizeof(tmp)); + if(asn_double2REAL(&tmp, Dbl)) { erval.encoded = -1; erval.failed_type = td; @@ -140,6 +143,10 @@ NativeReal_encode_der(asn_TYPE_descriptor_t *td, void *ptr, assert(erval.structure_ptr == &tmp); erval.structure_ptr = ptr; } + + /* Free possibly allocated members of the temporary structure */ + asn_DEF_REAL.free_struct(&asn_DEF_REAL, &tmp, 1); + return erval; }