[tor-bugs] #29805 [Core Tor/Tor]: 41 coverity defects on prob_distr.c

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Mar 19 21:43:52 UTC 2019


#29805: 41 coverity defects on prob_distr.c
---------------------------------+------------------------------------
 Reporter:  asn                  |          Owner:  (none)
     Type:  defect               |         Status:  new
 Priority:  Medium               |      Milestone:  Tor: 0.4.1.x-final
Component:  Core Tor/Tor         |        Version:
 Severity:  Normal               |     Resolution:
 Keywords:  prob-distr coverity  |  Actual Points:
Parent ID:                       |         Points:
 Reviewer:                       |        Sponsor:
---------------------------------+------------------------------------

Comment (by riastradh):

 You correctly ascertained that the goal of this apparently sketchy
 business is to check that in `container_of(P, T, F)`, the type `T` has a
 field `F` of the same type as `*P`.  I don't think there's any undefined
 behaviour here.

 The type check is already factored into a separate macro, precisely
 because of this issue with Coverity.  In NetBSD we have the following
 `#ifdef __COVERITY__` to suppress this noise:
 https://nxr.netbsd.org/xref/src/sys/lib/libkern/libkern.h#339

 {{{
 #ifdef __COVERITY___
 #define validate_container_of(P, T, F) 0
 #else
 #define validate_container_of(P, T, F) ...as before...
 #endif
 }}}

 We considered various other workarounds but, e.g., discarding the result
 with a comma led to non-Coverity compiler warnings, so we settled on an
 #ifdef.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29805#comment:3>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list