[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OTB segfault



On vendredi 19 janvier 2018 13:24:24 CET Paolo Cavallini wrote:

> Il 19/01/2018 11:54, Sebastiaan Couwenberg ha scritto:

> > I cannot reproduce this on Debian unstable with qgis 2.14.21 (from

> > Debian unstable as well).

>

> Here the result from gdb. Thanks Bas for helping.

>

> (gdb) bt full

> #0 __strncasecmp_l_avx () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:198

> No locals.

> #1 0x00007ffff3692c7e in CSLFetchNameValue () from /usr/lib/libgdal.so.20

> No symbol table info available.

> #2 0x00007ffff2e09461 in GDALPolygonize () from /usr/lib/libgdal.so.20

> No symbol table info available.

> #3 0x00007fffda66131b in

> otb::LabelImageToOGRDataSourceFilter<otb::Image<unsigned int, 2u>

>

> >::GenerateData() () from /usr/lib/otb/applications/otbapp_Segmentation.so

 

ok, this crashes within GDAL, but looking at OTB source in

https://github.com/orfeotoolbox/OTB/blob/5aab26e2af4bc8c8bf2c9f080a90e4db044771a8/Modules/Segmentation/Conversion/include/otbLabelImageToOGRDataSourceFilter.txx#L215

I can see this is a mis-use of the GDAL API

 

The char * option[1]; variable should always have the last item of the array to be

a NULL pointer. Which is not the case currently. Depending on optimization options,

memory layout, etc, 0 bytes might be found sometimes which may make the problem

to appear randomly

Another issue is that in the (m_Use8Connected == false) case the options pointer passed to

GDALPolygonize() is not initialized at all...

 

Anyway this is an upstream OTB issue. They should make sure that the options array passed to

GDALPolygonize() is either NULL or an array whose last item is NULL.

 

Even

 

--

Spatialys - Geospatial professional services

http://www.spatialys.com


Reply to: