Bug ID 756356: External datagroups of type string cannot use iRule command 'class match equals' for entries > 32 characters long

Last Modified: Jul 12, 2023

Affected Product(s):
BIG-IP LTM(all modules)

Known Affected Versions:
14.0.0, 14.0.0.1, 14.0.0.2, 14.0.0.3, 14.0.0.4, 14.0.0.5, 14.0.1, 14.0.1.1, 14.1.0, 14.1.0.1, 14.1.0.2, 14.1.0.3, 14.1.0.5

Fixed In:
15.0.0, 14.1.0.6

Opened: Jan 23, 2019

Severity: 2-Critical

Symptoms

iRules using the command 'class match' with the 'equals' operator on long entries fail to return a positive match, even if they are in the datagroup, for example: my_datagroup: "abcdefghijklmnopqrstuvwxyz0123456" := "value1" class match "abcdefghijklmnopqrstuvwxyz0123456" equals my_datagroup

Impact

iRules will act incorrectly

Conditions

This is encountered when all of the following conditions are met: - Using an external datagroup of type string with keys longer than 32 characters. - Using an iRule with the 'class match' command and the 'equals' operator on the external datagroup. - Trying to match keys that are longer than 32 characters.

Workaround

If none of the keys in the datagroup are prefixes of each other, the 'equals' operator can be changed to 'starts_with' or 'ends_with' (if none are suffixes of each other).

Fix Information

iRules using the command 'class match' with the 'equals' operator on long entries now correctly matches external datagroup string entries which are longer than 32 characters.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips