Project

General

Profile

Bug #5145

ValidatorConfig: checker - conflict between spec and implementation

Added by Junxiao Shi 9 months ago. Updated 7 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Security
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
2.00 h

Description

ValidatorConfig specification states:

A rule must have at least one checker property.
A packet is treated as valid if it can pass at least one of the checkers and as invalid when it cannot pass any checkers.

Rule::check function implementation is:

  for (const auto& checker : m_checkers) {
    bool result = checker->check(pktType, pktName, klName, state);
    if (!result) {
      return result;
    }
    hasPendingResult = true;
  }

If a rule has multiple checkers and a packet would pass some but not all checkers:

  • According to the current specification, the packet should be treated as valid.
  • According to the current implementation, the packet would be treated as invalid.

Either the specification or the implementation must be updated to match the other.

Also available in: Atom PDF