← Back to team overview

kicad-developers team mailing list archive

Re: 3D Viewer crushes whole KiCAD with this file

 

I've been considering implementing OpenVRML for giggles which uses
Boost::spirit for parsing. It's basically templating on steroids kind
of C++ but can parse both standards fully. Except its GPLv3 so I don't
know about license compatibility horseshit that comes with GPL.



On Thu, Feb 19, 2015 at 5:17 PM, Cirilo Bernardo
<cirilo.bernardo@xxxxxxxxx> wrote:
> I've checked the *.wrl file which had been purged of all entities not
> recognized by the KiCad vrml parser and it still does not display.
> There must be some other reason that the device does not display;
> since the scale is very small I suspect there may be rounding issues.
> When I have a little more time I'll use one of my tools to scale the
> model and I'll report back if I find anything useful.
>
> For over a year I've thought that the code for loading vrml models
> should be replaced and a few more vrml features should be
> supported, but since it works pretty well and I see it as only
> eye-candy the task has been on the very bottom of my list
> of things to do.
>
> - Cirilo
>
>
> On Thu, Feb 19, 2015 at 11:24 AM, Mark Roszko <mark.roszko@xxxxxxxxx> wrote:
>>
>> The root defect is the vrml has ~15 coordIndex tags that exceeds 128
>> bytes total.
>> The parser being pretty bad uses a fixed 128 byte buffer to read tags
>> into.
>> The parser in GetNextTag did not have bound checking and thus would
>> happily corrupt memory reading in that tag.
>>
>> My patch prevented GetNextTag from overflowing.
>> There's still some funniness with he model as it won't load but I
>> suspect its because its using unsupported vrml definitions.
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>
>



-- 
Mark


Follow ups

References