Opened 21 years ago

Last modified 14 years ago

#447 closed defect

MapServer crashes if LABELITEM does not exist — at Initial Version

Reported by: warmerdam Owned by: sdlime
Priority: high Milestone:
Component: MapServer C Library Version: 4.1
Severity: normal Keywords:
Cc:

Description

This came up while creating a minimal map file to reproduce another bug.  
Basically, if I have a label layer with an inline feature and a LABELITEM
which does not exist then MapServer crashes.

I am attaching a mapfile which should reproduce the problem using the command
"shp2img -m <mapfile> -o out.png".   You will need to modify the font path to
a valid font list file with something resolving the "default" name.


The crash looks like:
(gdb) where
#0  0x080589d7 in msShapeGetAnnotation (layer=0x80d9124, shape=0xbfffd110)
    at maputil.c:190
#1  0x0805fb45 in msDrawVectorLayer (map=0x416bf008, layer=0x80d9124, 
    image=0x810ff30) at mapdraw.c:659
#2  0x0805f751 in msDrawLayer (map=0x416bf008, layer=0x80d9124, 
    image=0x810ff30) at mapdraw.c:515
#3  0x0805edb1 in msDrawMap (map=0x416bf008) at mapdraw.c:269
#4  0x0804dc92 in main (argc=5, argv=0xbffff0a4) at shp2img.c:159
#5  0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6

Crashes on this line:
    tmpstr = strdup(shape->values[layer->labelitemindex]);

layer->labelitemindex is 0, but shape->values is NULL since there are no
attributes on this inline feature. 

I am not sure where the fix should be.

Change History (1)

by fwarmerdam, 21 years ago

Attachment: newbug.map added

Simple Mapfile demonstrating problem.

Note: See TracTickets for help on using tickets.