[Bro-Dev] #314: Bro integer type cleanup
Bro Tracker
bro at tracker.icir.org
Thu Nov 18 19:16:54 PST 2010
#314: Bro integer type cleanup
---------------------+--------------------
Reporter: gregor | Owner:
Type: Problem | Status: new
Priority: Normal | Milestone: Bro1.6
Component: Bro | Version:
Keywords: |
---------------------+--------------------
{{{
#!rst
In addition to enabling 64bit (`#72`:trac:) integers by defaults, we
should also look into the following issues with integers:
* Use ``inttypes.h`` for fixed width integer types instead of using
self-made #ifdefs. (E.g., uint64_t, int32_t).
inttypes.h is a C99 and POSIX standard.
Check for possible roadblock when doing so
* Make sure that everything that can potentially overflow
(counters) is 64 bit wide (in addition to --enable-int64)
I already found the following problems:
+ HTTP C++ analyzer: ``HTTP_Entity::body_length`` and
``HTTP_Message::body_length`` are defined as ``int`` and
can overflow (and indeed did). Don't forget to change
the getter method too.
+ I am quite sure, that there are more such problems around.
* Use ``PRI*`` macros for ``Xprintf()`` formatting (also defined in
``inttypes.h``)
* Which integer type to use? Bro defines a bro_int_t, which is
set to 32 or 64 bit wide (according to --enable-int64). However,
it is only sparsely used (most importantly for policy layer
data types).
Use bro_int_t consistently for event engine too or use custom
integer types for event engine (i.e., ``int64_t``, ``uint64_t``)?
Or leave as is.
Setting this to as 1.6 milestone as it is related to `#72`:trac:, but
could also be pushed to a later release.
}}}
--
Ticket URL: <http://tracker.icir.org/bro/ticket/314>
Bro Tracker <http://tracker.icir.org/bro>
Bro Issue Tracker
More information about the bro-dev
mailing list