[fdo-trac] #636: ExpressionEngine: segv when no filterCapabilities passed to ValidateFilter.

FDO trac_fdo at osgeo.org
Thu Apr 1 13:59:20 EDT 2010


#636: ExpressionEngine: segv when no filterCapabilities passed to ValidateFilter.
-----------------------------+----------------------------------------------
   Reporter:  brentrobinson  |       Owner:  brentrobinson                             
       Type:  defect         |      Status:  new                                       
   Priority:  major          |   Milestone:  3.6.0                                     
  Component:  Utilities API  |     Version:  3.5.0                                     
   Severity:  1              |    Keywords:  Expression Engine filter capabilities segv
External_id:                 |  
-----------------------------+----------------------------------------------
 The following:


 {{{
     clock_t start = clock();

     FdoPtr<FdoIConnection> conn;
     // ... open a connection to any provider and datastore

     FdoPtr<FdoISelect> select =
         (FdoISelect*)conn->CreateCommand(FdoCommandType_Select);

     FdoPtr<FdoFgfGeometryFactory> gf =
 FdoFgfGeometryFactory::GetInstance();

     double ordsXYExt[10];
     double llx = 465000;
     double lly = 172000;
     double urx = 467000;
     double ury = 175000;
     ordsXYExt[0] = llx; ordsXYExt[1] = lly;
     ordsXYExt[2] = llx; ordsXYExt[3] = ury;
     ordsXYExt[4] = urx; ordsXYExt[5] = ury;
     ordsXYExt[6] = urx; ordsXYExt[7] = lly;
     ordsXYExt[8] = llx; ordsXYExt[9] = lly;

     FdoPtr<FdoILinearRing> extRing =
         gf->CreateLinearRing(FdoDimensionality_XY, 10, ordsXYExt);
     FdoPtr<FdoIPolygon> poly = gf->CreatePolygon(extRing, NULL );
     FdoPtr<FdoGeometryValue> geomValue =
         FdoGeometryValue::Create(FdoPtr<FdoByteArray>(gf->GetFgf(poly)));


     FdoPtr<FdoSpatialCondition> spatialFilter =
 FdoPtr<FdoSpatialCondition>(FdoSpatialCondition::Create(L"the_geom",
             FdoSpatialOperations_EnvelopeIntersects,
             geomValue));

     FdoPtr<FdoIFeatureReader> rdr = select->Execute();

     FdoPtr<FdoExpressionEngine> engine =
         FdoExpressionEngine::Create(rdr, rdr->GetClassDefinition(), NULL);

     engine->ValidateFilter(rdr->GetClassDefinition(), spatialFilter);
 }}}

 leads to a segmentation violation.

-- 
Ticket URL: <http://trac.osgeo.org/fdo/ticket/636>
FDO <http://fdo.osgeo.org/>
Feature Data Objects


More information about the fdo-trac mailing list