diff options
author | Lev Walkin <vlm@lionet.info> | 2006-07-27 13:16:51 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2006-07-27 13:16:51 +0000 |
commit | 253cfcf2754a50a84b0f551c770749744d66bc05 (patch) | |
tree | 78e2fa1707a4d40f0dc24f1da75f962dbbf33470 | |
parent | fa8b09da92bf436c990a83b043185bd040e45ce9 (diff) |
early detection
-rw-r--r-- | skeletons/ber_tlv_length.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/skeletons/ber_tlv_length.c b/skeletons/ber_tlv_length.c index 5edd3524..b87e75e0 100644 --- a/skeletons/ber_tlv_length.c +++ b/skeletons/ber_tlv_length.c @@ -51,13 +51,14 @@ ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, } if(oct == 0) { - ber_tlv_len_t lenplusepsilon = len + 1024; + ber_tlv_len_t lenplusepsilon = (size_t)len + 1024; /* * Here length may be very close or equal to 2G. * However, the arithmetics used in some decoders * may add some (small) quantities to the length, * to check the resulting value against some limits. - * This may result in integer wrap-around. + * This may result in integer wrap-around, which + * we try to avoid by checking it earlier here. */ if(lenplusepsilon < 0) { /* Too large length value */ |