Potential for division by zero in file 'util.c' function TimeStop:

Bill Parker <[email protected]>
Newsgroups gmane.comp.security.ids.snort.devel
Message-ID <CAFrbyQz6Zg6Yu+RRHz6kLSR2YZ3n06aOKZ0xtRzZMZ3VN0e50Q@mail.gmail.com>
Hello All,

    In running Snort 2.9.8.0 Beta/RC through clang-analyzer, it
returned a potential for a division by zero at lines 1071-1073
in file 'util.c', function 'TimeStop'.  The issue could occur where
mins is 1, hrs is 0, days = 0, and the value for total_secs is 60
and SECONDS_PER_MIN is 60, which 60/60 = 0, which would result in
a division by zero error.

if ( mins > 0 || hrs > 0 || days > 0 )
{
uint64_t n = (pc.total_from_daq / (total_secs / SECONDS_PER_MIN));
I know this is unlikely to occur, as snort would have to be started
and stopped in exactly 60 seconds, but perhaps it should be written
as this:

    if ( mins > 0 || hrs > 0 || days > 0 )
{
if (total_secs != SECONDS_PER_MIN)
{
uint64_t n = (pc.total_from_daq / (total_secs / SECONDS_PER_MIN));
}
else /* total_secs and SECONDS_PER_MIN are 60 */
{
uint64_t n = (pc.total_from_daq / SECONDS_PER_MIN);
}
}
This would elininate the potential for the division by zero occuring at
all, would it not?

The same issue could occur in TimeStop where total_secs is equal to
SECONDS_PER_HOUR at lines 1065-1069, and where total_secs is equal to
SECONDS_PER_DAY at lines 1059-1063.

Bill

------------------------------------------------------------------------------

_______________________________________________
Snort-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/snort-devel
Archive:
http://sourceforge.net/mailarchive/forum.php?forum_name=snort-devel

Please visit http://blog.snort.org for the latest news about Snort!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.