Opened 12 years ago

Last modified 12 years ago

#4271 new defect

SIGFPE from mapsymbol.c 701

Reported by: woodbri Owned by: sdlime
Priority: normal Milestone: 6.2 release
Component: MapServer C Library Version: svn-trunk (development)
Severity: normal Keywords:
Cc:

Description

This is caused by:

  symbol
    name "S"
    image '/u/data/tiger2011-maps/etc/svg/hwy/S-blank.svg'
    type svg
  end
...

  label
    ...
    class
      ...
      label
        expression ('[a3]' = '3')
        style
          # specifying an svg symbol this way crashes
          #symbol '/u/data/tiger2011-maps/etc/svg/hwy/S-blank.svg'

          # the following works
          symbol 'S'
          size 20
          minsize 20
          maxsize 20
        end
     end
  end


{{{
Starting program: /usr/local/bin/mapserv QUERY_STRING='mode=map&map=/home/woodbri/work/mapserver-tests/bug4279.map' > junk.png
[Thread debugging using libthread_db enabled]
warning: Lowest section in /usr/lib/libicudata.so.38 is .hash at 0000000000000120
[New Thread 0x7fb321165710 (LWP 3642)]

Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7fb321165710 (LWP 3642)]
0x00007fb320d597d3 in msGetMarkerSize (symbolset=0x6e4110, style=0x739bc0,
    width=0x7fff4f2f54a8, height=0x7fff4f2f54a0, scalefactor=1)
    at mapsymbol.c:701
701           *width = MS_MAX(*width, ((size/symbol->pixmap_buffer->height) * symbol->pixmap_buffer->width));
(gdb) bt
#0  0x00007fb320d597d3 in msGetMarkerSize (symbolset=0x6e4110, style=0x739bc0,
    width=0x7fff4f2f54a8, height=0x7fff4f2f54a0, scalefactor=1)
    at mapsymbol.c:701
#1  0x00007fb320ddc593 in computeLabelMarkerPoly (map=0x6e40e0, img=0x715720,
    cachePtr=0x702c90, label=0x739950, markerPoly=0x7fff4f2f5610)
    at mapdraw.c:2629
#2  0x00007fb320ddd576 in msDrawLabelCache (image=0x715720, map=0x6e40e0)
    at mapdraw.c:2904
#3  0x00007fb320dd13a5 in msDrawMap (map=0x6e40e0, querymap=0) at mapdraw.c:493
#4  0x00007fb320e64fa8 in msCGIDispatchImageRequest (mapserv=0x6e36c0)
    at mapservutil.c:1475
#5  0x00007fb320e65adc in msCGIDispatchRequest (mapserv=0x6e36c0)
    at mapservutil.c:1717
#6  0x000000000040131d in main (argc=2, argv=0x7fff4f2f5c28) at mapserv.c:201
(gdb) p *width
$1 = 0
(gdb) p size
$2 = 20
(gdb) p symbol->pixmap_buffer->height
$3 = 0
(gdb) p symbol->pixmap_buffer->width
$5 = 0
(gdb) p *symbol
$6 = {name = 0x6f61a0 "/u/data/tiger2011-maps/etc/svg/hwy/S-blank.svg",
  type = 1003, inmapfile = 0, map = 0x0, sizex = 1, sizey = 1, minx = 0,
  miny = 0, maxx = 0, maxy = 0, points = {{x = 0, y = 0} <repeats 100 times>},
  refcount = 1, numpoints = 0, filled = 0, anchorpoint_x = 0.5,
  anchorpoint_y = 0.5, renderer = 0x0, pixmap_buffer = 0x7459b0,
  renderer_cache = 0x0, full_font_path = 0x0,
  full_pixmap_path = 0x6eeba0 "/u/data/tiger2011-maps/etc/svg/hwy/S-blank.svg", svg_cairo_surface = 0x0,
  imagepath = 0x6f6160 "/u/data/tiger2011-maps/etc/svg/hwy/S-blank.svg",
  transparent = 0, transparentcolor = 0, character = 0x0, antialias = 0,
  font = 0x0, svg_text = 0x0}
(gdb) p symbol->pixmap_buffer
$7 = (rasterBufferObj *) 0x7459b0
(gdb) p *symbol->pixmap_buffer
$8 = {type = 0, width = 0, height = 0, scale = 0, rotation = 0, data = {
    rgba = {pixels = 0x0, pixel_step = 0, row_step = 0, a = 0x0, r = 0x0,
      g = 0x0, b = 0x0}, palette = {pixels = 0x0, palette = 0x0,
      num_entries = 0, scaling_maxval = 0}, gd_img = 0x0}}
(gdb)
}}}

Change History (1)

comment:1 by woodbri, 12 years ago

Also see #4272 which is probably related to this issue.

Note: See TracTickets for help on using tickets.