https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116201

            Bug ID: 116201
           Summary: SARIF output doesn't properly reference the CWE
                    taxonomy
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: SARIF
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dmalcolm at gcc dot gnu.org
  Target Milestone: ---

We have:

VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
std::unique_ptr<sarif_tool_component_reference>
sarif_builder::
make_tool_component_reference_object_for_cwe () const
{
  auto comp_ref_obj = ::make_unique<sarif_tool_component_reference> ();

  /* "name" property  (SARIF v2.1.0 section 3.54.3).  */
  comp_ref_obj->set_string ("name", "cwe");

  return comp_ref_obj;
}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

where name is lowercase "cwe" whereas in:

VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
std::unique_ptr<sarif_tool_component>
sarif_builder::maybe_make_cwe_taxonomy_object () const
{
  if (m_cwe_id_set.is_empty ())
    return nullptr;

  auto taxonomy_obj = ::make_unique<sarif_tool_component> ();

  /* "name" property (SARIF v2.1.0 section 3.19.8).  */
  taxonomy_obj->set_string ("name", "CWE");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

the taxonomy object has uppercase name "CWE".

We should use uppercase for both for consistency.


That said, the spec says:

> 3.54.3 name property
> 
> A toolComponentReference object MAY contain a property named name whose 
> value is a string equal to theComponent.name (ยง3.19.8).
> 
> NOTE: This property does not participate in the lookup, but its presence
> improves the readability of the log file at the expense of increased file 
> size.

and so we should be using "index" or "guid" to establish the reference
(probably by adding an "index" property to the toolComponentReference).

Reply via email to