Opened 13 years ago

Closed 13 years ago

#1528 closed defect (fixed)

Random crashes when using OGR SQL in -where clause

Reported by: Mateusz Łoskot Owned by: warmerdam
Priority: normal Milestone: 1.4.1
Component: OGR_SF Version: 1.4.0
Severity: major Keywords:
Cc: tamas

Description (last modified by warmerdam)

The -where clause behaves instable in some cases. When used against MySQL or PostgreSQL, with OGR dialect of SQL, segmantation fault is thrown. It should be handled cleanly, if unsupported dialect is used.

Example of crash:

madmappers:/home/work# /opt/gdal-r11007_x86-linux/bin/ogr2ogr -f MySQL MYSQL:sptest,user=sptest,password=,host= -nln locust -update -overwrite FAO_DBsummary.shp -where 'OGR_GEOMETRY=POINT'
Segmentation fault

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1090607360 (LWP 28956)]
0x40357753 in OGRFeature::GetFieldAsString () from /opt/gdal-r11007_x86-linux/lib/

The major goal of this report is to review and fix potential problems with handling SQL queries in OGR by various ORG drivers.

Change History (3)

comment:3 Changed 13 years ago by warmerdam

Description: modified (diff)
Milestone: 1.5.0
Owner: changed from Mateusz Łoskot to warmerdam
Priority: highestnormal
Status: newassigned

comment:4 Changed 13 years ago by warmerdam


comment:5 Changed 13 years ago by warmerdam

Cc: tamas added
Description: modified (diff)
Resolution: fixed
Severity: criticalmajor
Status: assignedclosed
Version: unspecified1.4.0

I have confirmed a bug in GetFieldAsString?() on the OGR_GEOMETRY special field if the geometry is actually NULL. Also, some serious error conditions on several other special fields. These have been fixed.

The command indicates an input format of shapefile, so OGR SQL is implicated. After my fixes I see no problem. Unfortunately the original reporter (Nowak) did not bother to attach sample data to demonstrate the bug, so it is hard to know if we have fixed the bug he encountered.

I will port the changes back into 1.4 branch as well.

r11086 and r11087

Note: See TracTickets for help on using tickets.