Bug #5145

ValidatorConfig: checker - conflict between spec and implementation

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

Target version:
Start date:
Due date:
% Done:


Estimated time:
2.00 h


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.


Updated by Junxiao Shi 8 months ago

  • Tags set to security
  • Assignee set to Junxiao Shi

20210212 NFD call decides to update the implementation to match the current spec.


Updated by Davide Pesavento 8 months ago

  • Tags changed from security to security, ValidatorConfig

Updated by Junxiao Shi 8 months ago

  • Status changed from New to In Progress

Updated by Junxiao Shi 8 months ago

  • Status changed from In Progress to Code review
  • % Done changed from 0 to 60

Updated by Alex Afanasyev 7 months ago

  • Status changed from Code review to Closed
  • % Done changed from 60 to 100

Updated by Junxiao Shi 7 months ago

  • Description updated (diff)

Also available in: Atom PDF