diff options
-rw-r--r-- | epan/dissectors/packet-ber.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c index 7b643ce804..9816de81a0 100644 --- a/epan/dissectors/packet-ber.c +++ b/epan/dissectors/packet-ber.c @@ -748,6 +748,17 @@ printf("INTEGERnew dissect_ber_integer(%s) entered implicit_tag:%d \n",name,impl } /* ok, we cant handle >4 byte integers so lets fake them */ + /* + * XXX - should we handle large integers with a bignum type, + * and an FT_BIGNUM field type? This code currently has trouble + * with, for example, INTEGER (0..4294967295), as a value in the + * range 2147483648 to 0..4294967295 is represented as 5 bytes. + * + * There should at least be a way to indicate that the value we + * returned didn't fit in a 32-bit signed integer, so our caller + * can, if they didn't supply an hf_id, indicate that the value + * didn't fit. + */ if(len>8){ header_field_info *hfinfo; proto_item *pi = NULL; |