diff options
author | Guy Harris <guy@alum.mit.edu> | 2005-09-16 08:30:35 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2005-09-16 08:30:35 +0000 |
commit | 806a9d66acf1d5075bbbe3a3bdc2a96fd44e4873 (patch) | |
tree | 4f61e0a99599c91b2a2d5105916e9b1abd115e3a /epan | |
parent | 5502846e7bf7a9c057d7a628bf8ec0410b41dec5 (diff) |
Note problems with some values that appear in, for example, some SNMP
captures.
svn path=/trunk/; revision=15833
Diffstat (limited to 'epan')
-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; |