[GRASS-dev] [GRASS GIS] #1339: Corrupted Shapefile causes buffer overflows, assetions etc.

GRASS GIS trac at osgeo.org
Thu Mar 31 06:54:49 EDT 2011


#1339: Corrupted Shapefile causes buffer overflows, assetions etc.
-------------------------+--------------------------------------------------
 Reporter:  marisn       |       Owner:  grass-dev@…              
     Type:  defect       |      Status:  new                      
 Priority:  normal       |   Milestone:  6.4.2                    
Component:  Vector       |     Version:  unspecified              
 Keywords:               |    Platform:  Unspecified              
      Cpu:  Unspecified  |  
-------------------------+--------------------------------------------------
 One of my students managed to create a slightly corrupted shapefile.
 ArcGIS and QuantumGIS manage to deal with this file. OGR reports one of
 points having coordinates 0,0. File extent is reported as correct one -
 corrupted point lies outside of extent. Tested on Gentoo ~AMD64.

 Part of OGRINFO output:
 {{{
 Layer name: augstumpunkti1
 Geometry: Point
 Feature Count: 60
 Extent: (520046.672571, 6302258.489785) - (576734.883380, 6313825.790398)
 Layer SRS WKT:
 PROJCS["GRS_1980_Transverse_Mercator",
     GEOGCS["GCS_GRS_1980",
         DATUM["Not_specified_based_on_GRS_1980_ellipsoid",
             SPHEROID["GRS_1980",6378137.0,298.257222101]],
         PRIMEM["Greenwich",0.0],
         UNIT["Degree",0.0174532925199433]],
     PROJECTION["Transverse_Mercator"],
     PARAMETER["False_Easting",500000.0],
     PARAMETER["False_Northing",0.0],
     PARAMETER["Central_Meridian",24.0],
     PARAMETER["Scale_Factor",0.9996],
     PARAMETER["Latitude_Of_Origin",0.0],
     UNIT["Meter",1.0]]
 ....
 OGRFeature(augstumpunkti1):43
   Id (Integer) = 0
   augstums (Real) =      80.00000000000
   POINT (563662.082802134566009 6309812.449835392646492)

 OGRFeature(augstumpunkti1):44
   Id (Integer) = 0
   augstums (Real) =      90.00000000000
   POINT (0 0)

 OGRFeature(augstumpunkti1):45
   Id (Integer) = 0
   augstums (Real) =      82.80000000000
   POINT (565468.073194714379497 6308844.121653324924409)
 }}}


 GRASS 7 imports this file just fine, but almost everything touching this
 file fails.

 v.out.ascii
 {{{
 563662.08280213|6309812.44983539|44
 -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368|-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368|45
 565468.07319471|6308844.12165332|46
 }}}

 v.in.ogr in 6.5:
 {{{
 Building topology for vector map <augst3_tmp>...
 Registering primitives...
 v.in.ogr: split_q.c:69: RTreeClassify: Assertion `!p->taken[i]' failed.
 Aborted
 }}}

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/1339>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list