Commit 27d7049f authored by Lev Walkin's avatar Lev Walkin

added tests for length limit

parent 1cbd222a
...@@ -53,12 +53,12 @@ check(int size) { ...@@ -53,12 +53,12 @@ check(int size) {
} }
buf_off = 0; buf_off = 0;
erval = der_encode(&asn1_DEF_OCTET_STRING, erval = der_encode(&asn_DEF_OCTET_STRING,
os, write_to_buf, 0); os, write_to_buf, 0);
assert(erval.encoded == buf_off); assert(erval.encoded == buf_off);
assert(buf_off > size); assert(buf_off > size);
rval = ber_decode(&asn1_DEF_OCTET_STRING, (void **)&nos, buf, buf_off); rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
assert(rval.code == RC_OK); assert(rval.code == RC_OK);
assert(rval.consumed == buf_off); assert(rval.consumed == buf_off);
...@@ -76,12 +76,17 @@ check(int size) { ...@@ -76,12 +76,17 @@ check(int size) {
} }
asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, os, 0); asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, os, 0);
asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, nos, 0); asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, nos, 0);
} }
int int
main() { main() {
uint8_t buf1[] = { 0x85, 0x00, 0x01, 0x02, 0x03, 0x04 };
uint8_t buf2[] = { 0x85, 0x00, 0x7f, 0xff, 0x03, 0x04 };
uint8_t buf3[] = { 0x85, 0x00, 0x7f, 0xff, 0xff, 0x04 };
ber_tlv_len_t tlv_len;
ssize_t ret;
int i; int i;
for(i = 0; i < 66000; i++) { for(i = 0; i < 66000; i++) {
...@@ -89,5 +94,17 @@ main() { ...@@ -89,5 +94,17 @@ main() {
check(i); check(i);
} }
ret = ber_fetch_length(0, buf1, sizeof(buf1), &tlv_len);
printf("ret=%d, len=%d\n", ret, tlv_len);
assert(ret == sizeof(buf1));
ret = ber_fetch_length(0, buf2, sizeof(buf2), &tlv_len);
printf("ret=%d, len=%d\n", ret, tlv_len);
assert(ret == sizeof(buf2));
ret = ber_fetch_length(0, buf3, sizeof(buf3), &tlv_len);
printf("ret=%d\n", ret);
assert(ret == -1);
return 0; return 0;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment