Skip to content

Commit

Permalink
detect/port: fix grouping of ports w gaps
Browse files Browse the repository at this point in the history
If a single port happens before a range port, the port groups created
were incorrect. Fix it to use smarter range check.

For example, given,
80:80 - SGH1
100:120 - SGH2

Range created should be
80:80 - SGH1
100:120 - SGH2

Bug 6881
  • Loading branch information
inashivb authored and victorjulien committed Mar 22, 2024
1 parent 0be3ba8 commit 7d937db
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/detect-engine-build.c
Original file line number Diff line number Diff line change
Expand Up @@ -1425,7 +1425,13 @@ static inline int CreatePortList(DetectEngineCtx *de_ctx, const uint8_t *unique_
port = port2 + 1;
} else if (p1 && p1->single) {
SCPortIntervalFindOverlappingRanges(de_ctx, port, port, &it->tree, list);
port = port + 1;
if ((port2 > port + 1)) {
SCPortIntervalFindOverlappingRanges(
de_ctx, port + 1, port2 - 1, &it->tree, list);
port = port2;
} else {
port = port + 1;
}
} else if (p2->single) {
/* If port2 is boundary and less or equal to port + 1, create a range
* keeping the boundary away as it is single port */
Expand Down

0 comments on commit 7d937db

Please sign in to comment.