This was a combination of two bugs: firstly, we weren't initialising the
state variable field_names to NULL, and so if the variable happened to
be filled with junk and we were unable to import a shape file, we would
end up freeing a random pointer.
Secondly, shapelib tries to be clever and strip off any file extension
by searching for a "." character from the end of the filename, hence
causing the truncation of the filename. Resolve this by leaving the
.shp/.dbf extension from the file selector in the filename string so
that shapelib does the right thing.
git-svn-id: http://svn.osgeo.org/postgis/trunk@11292
b70326c6-7e19-0410-871a-
916f4a2858ee
state->widths = NULL;
state->precisions = NULL;
state->col_names = NULL;
+ state->field_names = NULL;
state->from_srid = config->shp_sr_id;
state->to_srid = config->sr_id;
table_end = loader_file_config->shp_file + strlen(loader_file_config->shp_file);
while (*table_end != '.' && table_end > loader_file_config->shp_file && table_end > table_start )
table_end--;
-
- /* Sneakily remove .shp from shp_file */
- *table_end = '\0';
/* Copy the table name */
loader_file_config->table = malloc(table_end - table_start + 1);