[MapServer-dev] Zero-size SVG rendering : mapserv.fcgi crashes

Jeff McKenna jmckenna at gatewaygeomatics.com
Mon Nov 13 05:53:00 PST 2023


Hi Philippe,

Yes please open a ticket with your suggested changes.

thanks,

-jeff



On 2023-11-13 6:21 a.m., Philippe Ghesquiere wrote:
> Hi Jeff,
> 
> I'm afraid I will not be able to make a pull request by myself : I have 
> no development environment at hand.
> Do you want me to open an issue ?
> Sincerely
> Philippe
> 
> On Fri, Nov 10, 2023 at 6:39 PM Jeff McKenna via MapServer-dev 
> <mapserver-dev at lists.osgeo.org <mailto:mapserver-dev at lists.osgeo.org>> 
> wrote:
> 
>     Hi Philippe,
> 
>     Your dimensions test makes sense to me.  Are you willing to submit a
>     pull request for this, against the main branch?  Also, it would be
>     great
>     if you can include a test for this in msautotest (follow steps at
>     https://mapserver.org/development/tests/autotest.html
>     <https://mapserver.org/development/tests/autotest.html> ) as part of
>     your
>     pull request.
> 
>     Thanks,
> 
>     -jeff
> 
> 
> 
> 
> 
>     -- 
>     Jeff McKenna
>     GatewayGeo: Developers of MS4W, & offering MapServer Consulting/Dev
>     co-founder of FOSS4G
>     http://gatewaygeo.com/ <http://gatewaygeo.com/>
> 
> 
> 
>     On 2023-11-10 11:40 a.m., Philippe Ghesquiere via MapServer-dev wrote:
>      > Hi all,
>      >
>      > My mapserver installation is based on :
>      >
>      >   * Mapserver 7.6.3
>      >   * MapCache : 1.12.0
>      >
>      > I bumped into a configuration (zoom, orientation, ...) where an SVG
>      > symbol has one null dimension (height or width).
>      > The rendering process crashes with the following error message
>      > (mapcairo.c
>      > <https://github.com/MapServer/MapServer/blob/rel-7-6-3/mapcairo.c
>     <https://github.com/MapServer/MapServer/blob/rel-7-6-3/mapcairo.c>>) :
>      > mapserv.fcgi:
>     /builds/i4d/datacenter/mapserver/MapServer/mapcairo.c:1074:
>      > msRenderRasterizedSVGSymbol: Assertion
>     `svg_cache->pixmap_buffer->height
>      > && svg_cache->pixmap_buffer->width' failed.
>      >
>      > The code snippet  shows :
>      > //already rendered at the right size and scale? return
>      > if(svg_cache->scale != style->scale || svg_cache->rotation !=
>      > style->rotation) {
>      > ...
>      > }
>      > assert(svg_cache->pixmap_buffer->height &&
>     svg_cache->pixmap_buffer->width);
>      >
>      > Instead of crashing the rendering process, wouldn't it be more
>      > appropriate to test buffer dimensions beforehands.
>      > Something like :
>      > if ( (svg_cache->pixmap_buffer->height == 0 ||
>      > (svg_cache->pixmap_buffer->width == 0) )
>      >     return MS_FAILURE;
>      >
>      > //already rendered at the right size and scale? return
>      > if(svg_cache->scale != style->scale || svg_cache->rotation !=
>      > style->rotation) {
>      > ...
>      > }
>      >
>      > Philippe
>      > The information in this e-mail is confidential. The contents may
>     not be
>      > disclosed or used by anyone other than the addressee. Access to this
>      > e-mail by anyone else is unauthorised.
>      > If you are not the intended recipient, please notify Airbus
>     immediately
>      > and delete this e-mail.
>      > Airbus cannot accept any responsibility for the accuracy or
>     completeness
>      > of this e-mail as it has been sent over public networks. If you
>     have any
>      > concerns over the content of this message or its Accuracy or
>     Integrity,
>      > please contact Airbus immediately.
>      > All outgoing e-mails from Airbus are checked using regularly updated
>      > virus scanning software but you should take whatever measures you
>     deem
>      > to be appropriate to ensure that this message and any attachments
>     are
>      > virus free.
>      >
>     _______________________________________________
>     MapServer-dev mailing list
>     MapServer-dev at lists.osgeo.org <mailto:MapServer-dev at lists.osgeo.org>
>     https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>     <https://lists.osgeo.org/mailman/listinfo/mapserver-dev>
> 
> The information in this e-mail is confidential. The contents may not be 
> disclosed or used by anyone other than the addressee. Access to this 
> e-mail by anyone else is unauthorised.
> If you are not the intended recipient, please notify Airbus immediately 
> and delete this e-mail.
> Airbus cannot accept any responsibility for the accuracy or completeness 
> of this e-mail as it has been sent over public networks. If you have any 
> concerns over the content of this message or its Accuracy or Integrity, 
> please contact Airbus immediately.
> All outgoing e-mails from Airbus are checked using regularly updated 
> virus scanning software but you should take whatever measures you deem 
> to be appropriate to ensure that this message and any attachments are 
> virus free.

-- 
Jeff McKenna
GatewayGeo: Developers of MS4W, & offering MapServer Consulting/Dev
co-founder of FOSS4G
http://gatewaygeo.com/



More information about the MapServer-dev mailing list