Le vendredi 11 septembre 2015 09:40:03, Jukka Rahkonen a écrit : > Even Rouault <even.rouault <at> spatialys.com> writes: > > The crash is indeed linked to the fact that a wrong table name was > > passed. > > And > > > to reach that point the table name was of the form > > "table_name(geom_column_name)", right ? > > > > Fixed by https://trac.osgeo.org/gdal/ticket/6103 > > > > As far as the why there's this one character offset, the fundamental > > cause > > for > > > the issue, I don't know without having a way to reproduce. > > Hi, > > I got a hint that it might originate from the SQLite driver as well but we > have not yet understood the code well enough:
Oh.... indeed. I see now what is wrong. You have been correctly hinted. Fixed by https://trac.osgeo.org/gdal/ticket/6107 The issue was also present in 1.11 The code wasn't careful enough and confused successive identical regular characters with consecutive quote characters... > > > > size_t nFromPos = osSQLBase.ifind(" from "); > if (nFromPos == std::string::npos) > { > return std::pair<OGRLayer*, > IOGRSQLiteGetSpatialWhere*>((OGRLayer*)NULL, > (IOGRSQLiteGetSpatialWhere*)NULL); } > > char chQuote = osSQLBase[nFromPos + 6]; > int bInQuotes = (chQuote == '\'' || chQuote == '"' ); > CPLString osBaseLayerName; > for( i = nFromPos + 6 + (bInQuotes ? 1 : 0); > i < osSQLBase.size(); i++ ) > { > if (osSQLBase[i] == chQuote && i + 1 < osSQLBase.size() && > osSQLBase[i + 1] == chQuote ) > { > osBaseLayerName += osSQLBase[i]; > i++; > } > else if (osSQLBase[i] == chQuote && bInQuotes) > { > i++; > break; > } > else if (osSQLBase[i] == ' ' && !bInQuotes) > break; > else > osBaseLayerName += osSQLBase[i]; > } > > -Jukka- > > _______________________________________________ > gdal-dev mailing list > gdal-dev@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/gdal-dev -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev