Fix several memory leaks in the tests
diff --git a/tests/tests-c-compiler/check-src/check-03.-fwide-types.c b/tests/tests-c-compiler/check-src/check-03.-fwide-types.c
index 2c44d62..5a58d79 100644
--- a/tests/tests-c-compiler/check-src/check-03.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-03.-fwide-types.c
@@ -45,6 +45,8 @@
sprintf(buf2, "<Enum2>%s</Enum2>", xer_string);
printf("%d -> %s == %s\n", eval, buf, buf2);
assert(0 == strcmp(buf, buf2));
+
+ ASN_STRUCT_FREE(asn_DEF_Enum2, e);
}
int
diff --git a/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c b/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c
index 31270c3..655dd75 100644
--- a/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-119.-fwide-types.-gen-PER.c
@@ -249,6 +249,7 @@
/* Save and re-load as PER */
save_object_as(st, expectation, AS_PER);
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
if(expectation == EXP_PER_NOCOMP)
return; /* Already checked */
st = load_object_from("buffer", expectation, buf, buf_offset, AS_PER);
diff --git a/tests/tests-c-compiler/check-src/check-119.-gen-PER.c b/tests/tests-c-compiler/check-src/check-119.-gen-PER.c
index 3023303..0743302 100644
--- a/tests/tests-c-compiler/check-src/check-119.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-119.-gen-PER.c
@@ -251,6 +251,8 @@
/* Save and re-load as PER */
save_object_as(st, expectation, AS_PER);
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
+
if(expectation == EXP_PER_NOCOMP)
return; /* Already checked */
st = load_object_from("buffer", expectation, buf, buf_offset, AS_PER);
diff --git a/tests/tests-c-compiler/check-src/check-126.-gen-PER.c b/tests/tests-c-compiler/check-src/check-126.-gen-PER.c
index 947640b..ed8cd25 100644
--- a/tests/tests-c-compiler/check-src/check-126.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-126.-gen-PER.c
@@ -150,6 +150,7 @@
rval.consumed /= 8;
if(mustfail) {
fprintf(stderr, "-> (this was expected failure)\n");
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
return 0;
}
} else {
@@ -167,6 +168,7 @@
if((mustfail?1:0) == (rval.code == RC_FAIL)) {
if(mustfail) {
fprintf(stderr, "-> (this was expected failure)\n");
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
return 0;
}
} else {
@@ -246,6 +248,7 @@
FILE *f;
char lastChar;
int mustfail, compare;
+ PDU_t *st;
sprintf(outName, SRCDIR_S "/data-126/%s", fname);
strcpy(outName + strlen(outName) - 3, ".out");
@@ -268,7 +271,8 @@
fclose(f);
fprintf(stderr, "Trying to decode [%s]\n", outName);
- load_object_from(outName, fbuf, rd, AS_PER, mustfail);
+ st = load_object_from(outName, fbuf, rd, AS_PER, mustfail);
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
if(mustfail) return;
if(compare) {
@@ -291,6 +295,7 @@
/* Save and re-load as PER */
save_object_as(st, AS_PER);
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
compare_with_data_out(fname, buf, buf_offset);
st = load_object_from("buffer", buf, buf_offset, AS_PER, 0);
assert(st);
diff --git a/tests/tests-c-compiler/check-src/check-127.-gen-PER.c b/tests/tests-c-compiler/check-src/check-127.-gen-PER.c
index 34b6d74..0ead123 100644
--- a/tests/tests-c-compiler/check-src/check-127.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-127.-gen-PER.c
@@ -42,6 +42,8 @@
xer_fprint(stderr, &asn_DEF_T, ti);
xer_fprint(stderr, &asn_DEF_T, to);
+
+ ASN_STRUCT_FREE(asn_DEF_T, to);
}
int main() {
diff --git a/tests/tests-c-compiler/check-src/check-131.-gen-PER.c b/tests/tests-c-compiler/check-src/check-131.-gen-PER.c
index ed29315..0b8fcd6 100644
--- a/tests/tests-c-compiler/check-src/check-131.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-131.-gen-PER.c
@@ -55,5 +55,6 @@
|| (pd.nboff == 16 && pd.buffer == &po.tmpspace[0]));
assert(pd.nboff + pd.nbits == 16);
+ ASN_STRUCT_FREE(asn_DEF_T, t2);
return 0;
}
diff --git a/tests/tests-c-compiler/check-src/check-132.-gen-PER.c b/tests/tests-c-compiler/check-src/check-132.-gen-PER.c
index 592425c..c8a2fb6 100644
--- a/tests/tests-c-compiler/check-src/check-132.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check-132.-gen-PER.c
@@ -36,6 +36,8 @@
xer_fprint(stderr, &asn_DEF_T, ti);
xer_fprint(stderr, &asn_DEF_T, to);
+
+ ASN_STRUCT_FREE(asn_DEF_T, to);
}
int main() {
diff --git a/tests/tests-c-compiler/check-src/check-135.-gen-OER.c b/tests/tests-c-compiler/check-src/check-135.-gen-OER.c
index 384639f..6673a49 100644
--- a/tests/tests-c-compiler/check-src/check-135.-gen-OER.c
+++ b/tests/tests-c-compiler/check-src/check-135.-gen-OER.c
@@ -36,6 +36,8 @@
return 1;
}
+ ASN_STRUCT_RESET(asn_DEF_T, &source);
+ ASN_STRUCT_FREE(asn_DEF_T, decoded);
return 0;
}
diff --git a/tests/tests-c-compiler/check-src/check-148.c b/tests/tests-c-compiler/check-src/check-148.c
index f19a110..94afdcd 100644
--- a/tests/tests-c-compiler/check-src/check-148.c
+++ b/tests/tests-c-compiler/check-src/check-148.c
@@ -139,6 +139,8 @@
buf2_pos = 0;
erval = der_encode(&asn_DEF_DefaultSequence, tp, buf2_fill, 0);
compare_encoding(&erval, expected, expected_size, buf2);
+
+ ASN_STRUCT_RESET(asn_DEF_DefaultSequence, tp);
}
static void
@@ -160,6 +162,7 @@
buf2_pos = 0;
erval = der_encode(&asn_DEF_DefaultSet, tp, buf2_fill, 0);
compare_encoding(&erval, expected, expected_size, buf2);
+ ASN_STRUCT_RESET(asn_DEF_DefaultSet, tp);
}
int
diff --git a/tests/tests-c-compiler/check-src/check-22.-fwide-types.c b/tests/tests-c-compiler/check-src/check-22.-fwide-types.c
index 2b3a542..8fe42a4 100644
--- a/tests/tests-c-compiler/check-src/check-22.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-22.-fwide-types.c
@@ -79,6 +79,7 @@
);
}
assert(rval.consumed <= (size_t)consumed);
+ ASN_STRUCT_RESET(asn_DEF_T1, tp);
return;
}
@@ -113,6 +114,8 @@
ret = xer_fprint(stderr, &asn_DEF_T1, tp);
assert(ret == 0);
fprintf(stderr, "=== EOF ===\n");
+
+ ASN_STRUCT_RESET(asn_DEF_T1, tp);
}
static void
diff --git a/tests/tests-c-compiler/check-src/check-24.-fwide-types.c b/tests/tests-c-compiler/check-src/check-24.-fwide-types.c
index aad7fb8..a885d6c 100644
--- a/tests/tests-c-compiler/check-src/check-24.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-24.-fwide-types.c
@@ -58,6 +58,8 @@
}
assert(rval.consumed <= consumed);
}
+
+ ASN_STRUCT_RESET(asn_DEF_T, tp);
}
static void
diff --git a/tests/tests-c-compiler/check-src/check-30.-fwide-types.c b/tests/tests-c-compiler/check-src/check-30.-fwide-types.c
index 1843080..3f1b1cd 100644
--- a/tests/tests-c-compiler/check-src/check-30.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-30.-fwide-types.c
@@ -177,6 +177,7 @@
}
assert(rval.consumed <= consumed);
}
+ ASN_STRUCT_RESET(asn_DEF_T, tp);
}
@@ -212,6 +213,8 @@
printf("[%s] vs [%s]\n", xer_buf, xer_sample);
assert(xer_off == xer_sample_len);
assert(memcmp(xer_buf, xer_sample, xer_off) == 0);
+
+ ASN_STRUCT_FREE(asn_DEF_T, tp);
}
static void
diff --git a/tests/tests-c-compiler/check-src/check-31.-fwide-types.c b/tests/tests-c-compiler/check-src/check-31.-fwide-types.c
index a6bd772..399f0da 100644
--- a/tests/tests-c-compiler/check-src/check-31.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-31.-fwide-types.c
@@ -124,6 +124,7 @@
);
}
assert(rval.consumed <= consumed);
+ ASN_STRUCT_RESET(asn_DEF_Forest, &t);
return;
}
@@ -173,6 +174,8 @@
printf("[%s] vs [%s]\n", xer_buf, xer_sample);
assert(xer_off == xer_sample_len);
assert(memcmp(xer_buf, xer_sample, xer_off) == 0);
+
+ ASN_STRUCT_FREE(asn_DEF_Forest, tp);
}
diff --git a/tests/tests-c-compiler/check-src/check-32.c b/tests/tests-c-compiler/check-src/check-32.c
index d869a90..3f8bf06 100644
--- a/tests/tests-c-compiler/check-src/check-32.c
+++ b/tests/tests-c-compiler/check-src/check-32.c
@@ -57,6 +57,7 @@
assert(swo->seqOfOpt != 0);
xer_fprint(stderr, &asn_DEF_SeqWithOptional, swo);
+ void *tmp = swo->seqOfOpt;
swo->seqOfOpt = 0;
erv = der_encode_to_buffer(&asn_DEF_SeqWithOptional,
@@ -64,10 +65,15 @@
assert(erv.encoded > 0);
buf[erv.encoded] = '\0';
+ swo->seqOfOpt = tmp;
+ ASN_STRUCT_RESET(asn_DEF_SeqWithMandatory, &swm);
+ ASN_STRUCT_FREE(asn_DEF_SeqWithOptional, swo);
swo = 0;
+
drv = ber_decode(0, &asn_DEF_SeqWithMandatory, (void **)&swo,
buf, erv.encoded);
assert(drv.code != RC_OK);
+ ASN_STRUCT_FREE(asn_DEF_SeqWithOptional, swo);
swo = 0;
drv = ber_decode(0, &asn_DEF_SeqWithOptional, (void **)&swo,
buf, erv.encoded);
@@ -76,6 +82,7 @@
assert(swo->seqOfOpt == 0);
xer_fprint(stderr, &asn_DEF_SeqWithOptional, swo);
+ ASN_STRUCT_FREE(asn_DEF_SeqWithOptional, swo);
printf("Finished\n");
diff --git a/tests/tests-c-compiler/check-src/check-35.c b/tests/tests-c-compiler/check-src/check-35.c
index f4e797c..6f1fcc8 100644
--- a/tests/tests-c-compiler/check-src/check-35.c
+++ b/tests/tests-c-compiler/check-src/check-35.c
@@ -304,6 +304,8 @@
assert(er.encoded == (ssize_t)xer_off);
assert(xer_off == xer_sample_len);
assert(memcmp(xer_buf, xer_sample, xer_off) == 0);
+
+ ASN_STRUCT_FREE(asn_DEF_T, tp);
}
diff --git a/tests/tests-c-compiler/check-src/check-46.c b/tests/tests-c-compiler/check-src/check-46.c
index 6e50f64..21ae690 100644
--- a/tests/tests-c-compiler/check-src/check-46.c
+++ b/tests/tests-c-compiler/check-src/check-46.c
@@ -31,6 +31,7 @@
assert(rval.code == RC_OK);
assert(rval.consumed == consumed);
+ ASN_STRUCT_RESET(asn_DEF_T, tp);
}
int
diff --git a/tests/tests-c-compiler/check-src/check-48.c b/tests/tests-c-compiler/check-src/check-48.c
index f8a7918..a41981e 100644
--- a/tests/tests-c-compiler/check-src/check-48.c
+++ b/tests/tests-c-compiler/check-src/check-48.c
@@ -94,5 +94,7 @@
printf("OK\n");
+ ASN_STRUCT_RESET(asn_DEF_UserIdentifier, &user);
+ ASN_STRUCT_RESET(asn_DEF_UserIdentifier, &user_new);
return ret;
}
diff --git a/tests/tests-c-compiler/check-src/check-60.c b/tests/tests-c-compiler/check-src/check-60.c
index f871dbb..23bdac1 100644
--- a/tests/tests-c-compiler/check-src/check-60.c
+++ b/tests/tests-c-compiler/check-src/check-60.c
@@ -109,7 +109,7 @@
* Test the T1 with primitive encoding.
*/
memset(&t1, 0, sizeof(t1));
- memset(&t1_new, 0, sizeof(t1_new));
+ ASN_STRUCT_RESET(asn_DEF_T1, &t1_new);
t1.i = -112233;
t1.any.buf = test_any_buf2;
@@ -123,6 +123,7 @@
assert(t1_new.i == -112233);
assert(t1_new.any.size == (ssize_t)sizeof(test_any_buf2));
assert(memcmp(t1_new.any.buf, test_any_buf2, sizeof(test_any_buf2)) == 0);
+ ASN_STRUCT_RESET(asn_DEF_T1, &t1_new);
/*
* Test the T2 empty sequence.
@@ -146,8 +147,8 @@
/*
* Test the T2 sequence.
*/
- memset(&t2, 0, sizeof(t2));
- memset(&t2_new, 0, sizeof(t2_new));
+ ASN_STRUCT_RESET(asn_DEF_T2, &t2);
+ ASN_STRUCT_RESET(asn_DEF_T2, &t2_new);
t2.i = 332211;
t2.any = calloc(1, sizeof(*t2.any));
@@ -166,8 +167,10 @@
/*
* Test the T2 sequence with primitive encoding.
*/
- memset(&t2, 0, sizeof(t2));
- memset(&t2_new, 0, sizeof(t2_new));
+ t2.any->buf = NULL;
+ t2.any->size = 0;
+ ASN_STRUCT_RESET(asn_DEF_T2, &t2);
+ ASN_STRUCT_RESET(asn_DEF_T2, &t2_new);
t2.i = 0;
t2.any = calloc(1, sizeof(*t2.any));
@@ -188,7 +191,7 @@
*/
free(t2.any);
t2.any = 0;
- memset(&t2_new, 0, sizeof(t2_new));
+ ASN_STRUCT_RESET(asn_DEF_T2, &t2_new);
save_object(&t2, td2);
ret = load_object(&t2_new, td2);
diff --git a/tests/tests-c-compiler/check-src/check-65.c b/tests/tests-c-compiler/check-src/check-65.c
index 061a3aa..c292063 100644
--- a/tests/tests-c-compiler/check-src/check-65.c
+++ b/tests/tests-c-compiler/check-src/check-65.c
@@ -95,6 +95,7 @@
}
assert(rval.consumed <= consumed);
}
+ ASN_STRUCT_RESET(*td, tp);
}
int
diff --git a/tests/tests-c-compiler/check-src/check-70.-fwide-types.c b/tests/tests-c-compiler/check-src/check-70.-fwide-types.c
index 8152346..7891069 100644
--- a/tests/tests-c-compiler/check-src/check-70.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-70.-fwide-types.c
@@ -190,6 +190,7 @@
/* Save and re-load as DER */
save_object_as(st, ATS_DER);
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
st = load_object_from(expectation, buf, buf_offset, ATS_BER);
assert(st);
diff --git a/tests/tests-c-compiler/check-src/check-70.c b/tests/tests-c-compiler/check-src/check-70.c
index 8e27799..821b3d6 100644
--- a/tests/tests-c-compiler/check-src/check-70.c
+++ b/tests/tests-c-compiler/check-src/check-70.c
@@ -184,6 +184,7 @@
/* Save and re-load as DER */
save_object_as(st, ATS_DER);
+ ASN_STRUCT_FREE(asn_DEF_PDU, st);
st = load_object_from(expectation, buf, buf_offset, ATS_BER);
assert(st);
diff --git a/tests/tests-c-compiler/check-src/check64-134.-gen-PER.c b/tests/tests-c-compiler/check-src/check64-134.-gen-PER.c
index 1eaef4e..61d5fd7 100644
--- a/tests/tests-c-compiler/check-src/check64-134.-gen-PER.c
+++ b/tests/tests-c-compiler/check-src/check64-134.-gen-PER.c
@@ -70,6 +70,7 @@
xer_fprint(stderr, &asn_DEF_T, ti);
xer_fprint(stderr, &asn_DEF_T, to);
+ ASN_STRUCT_FREE(asn_DEF_T, to);
}
static void
@@ -95,36 +96,42 @@
l2i(&ti.signed33, 0);
l2i(&ti.signed33ext, 0);
verify(1, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 1);
ul2i(&ti.unsigned42, 1);
l2i(&ti.signed33, 1);
l2i(&ti.signed33ext, 1);
verify(2, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 5000000000);
ul2i(&ti.unsigned42, 3153600000000);
l2i(&ti.signed33, 4000000000);
l2i(&ti.signed33ext, 4000000000);
verify(3, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, -1);
ul2i(&ti.unsigned42, 0);
l2i(&ti.signed33, 0);
l2i(&ti.signed33ext, 0);
NO_encode(4, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 0);
ul2i(&ti.unsigned42, -1);
l2i(&ti.signed33, 0);
l2i(&ti.signed33ext, 0);
NO_encode(5, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 0);
ul2i(&ti.unsigned42, 0);
l2i(&ti.signed33, -4000000000-1);
l2i(&ti.signed33ext, 0);
NO_encode(6, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 0);
ul2i(&ti.unsigned42, 0);
@@ -132,30 +139,35 @@
l2i(&ti.signed33ext, -4000000000-1);
assert(ti.signed33ext.size == 5);
verify(7, &ti); /* signed33ext is extensible */
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 5000000000 + 1);
ul2i(&ti.unsigned42, 0);
l2i(&ti.signed33, 0);
l2i(&ti.signed33ext, 0);
NO_encode(8, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 0);
ul2i(&ti.unsigned42, 3153600000000 + 1);
l2i(&ti.signed33, 0);
l2i(&ti.signed33ext, 0);
NO_encode(9, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 5000000000 - 1);
ul2i(&ti.unsigned42, 3153600000000 - 1);
l2i(&ti.signed33, 4000000000 - 1);
l2i(&ti.signed33ext, 4000000000 - 1);
verify(10, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
ul2i(&ti.unsigned33, 0);
ul2i(&ti.unsigned42, 0);
l2i(&ti.signed33, 0);
l2i(&ti.signed33ext, 4000000000 + 1);
verify(11, &ti);
+ ASN_STRUCT_RESET(asn_DEF_T, &ti);
return 0;
}
diff --git a/tests/tests-c-compiler/check-src/check64-136.-gen-OER.c b/tests/tests-c-compiler/check-src/check64-136.-gen-OER.c
index 5658738..6b17a7b 100644
--- a/tests/tests-c-compiler/check-src/check64-136.-gen-OER.c
+++ b/tests/tests-c-compiler/check-src/check64-136.-gen-OER.c
@@ -38,7 +38,8 @@
if(XEQ_SUCCESS != xer_equivalent(&asn_DEF_T, &source, decoded, stderr)) {
return 1;
}
-
+ ASN_STRUCT_RESET(asn_DEF_T, &source);
+ ASN_STRUCT_FREE(asn_DEF_T, decoded);
return 0;
}