Opened 15 years ago

Closed 14 years ago

#603 closed defect (fixed)

Expression Engine fails to process combinations of multiple operations

Reported by: gregboone Owned by: gregboone
Priority: major Milestone: 3.5.0
Component: Utilities API Version: 3.5.0
Severity: 2 Keywords: ExpressionEngine
Cc: External ID: 1282572

Description

Issue:

There is a defect in the FDO Expression engine when optimizing complex spatial filters that contain an EnvelopeIntersects expression and a secondary spatial condition such as Intersects. The optimizing logic in OptimizeSubSet() attempts to optimize the EnvelopeIntersects and Intersects operation so that the EnvelopeIntersects becomes irrelevant and is removed from the filter. This works well for filters containing a single EnvelopeIntersects condition and a single Intersects condition. However, if there are multiple Intersects conditions, the for loop logic of the routine does not have sufficient safeguards to ensure that the deletion of the EnvelopeIntersects condition from the filter will allow the executing nested for loop to continue without attempting to access an array member at an invalid location.

Resolution:

Add a sanity check to the FDO Expression Engine OptimizeSubSet() routine to ensure that array items are not accessed at invalid locations.

Change History (2)

comment:1 by gregboone, 15 years ago

Status: newassigned

comment:2 by gregboone, 14 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.