sK1

sk1 crashes when opening big .svg file created with Inkscape

Bug #296641 reported by Mantas Kriaučiūnas
4
Affects Status Importance Assigned to Milestone
sK1
Fix Committed
Undecided
Unassigned
Baltix
Fix Committed
Undecided
Unassigned

Bug Description

sk1 crashes when opening .svg file created with Inkscape.
The error is:
ubuntu@baltix:~$ sk1
shared memory images supported
Cairo initialized!
Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 979, in Load
    xml_reader.parse(input_source)
  File "/usr/lib/python2.5/xml/sax/expatreader.py", line 107, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/lib/python2.5/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/lib/python2.5/xml/sax/expatreader.py", line 207, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/lib/python2.5/xml/sax/expatreader.py", line 301, in start_element
    self._cont_handler.startElement(name, AttributesImpl(attrs))
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 338, in startElement
    getattr(self, method)(attrs)
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 834, in begin_path
    self.parse_path(attrs['d'])
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 677, in parse_path
    path.AppendLine(trafo(points[0], points[1]))
IndexError: list index out of range
Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/sk1/app/UI/command.py", line 49, in Invoke
    apply(self.get_method(self.command), self.args + args)
  File "/usr/lib/python2.5/site-packages/sk1/app/UI/mainwindow.py", line 686, in LoadFromFile
    self.docmanager.OpenDocument(filename, directory)
  File "/usr/lib/python2.5/site-packages/sk1/app/managers/docmanager.py", line 68, in OpenDocument
    doc=dlg.RunDialog(self.open_callback, filename)
  File "/usr/lib/python2.5/site-packages/sk1/app/UI/dialogs/progressdialog.py", line 50, in RunDialog
    result=callback(arg)
  File "/usr/lib/python2.5/site-packages/sk1/app/managers/docmanager.py", line 89, in open_callback
    doc = load.load_drawing(filename)
  File "/usr/lib/python2.5/site-packages/sk1/app/io/load.py", line 373, in load_drawing
    return load_drawing_from_file(file, filename)
  File "/usr/lib/python2.5/site-packages/sk1/app/io/load.py", line 346, in load_drawing_from_file
    doc = loader.Load()
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 979, in Load
    xml_reader.parse(input_source)
  File "/usr/lib/python2.5/xml/sax/expatreader.py", line 107, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/lib/python2.5/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/lib/python2.5/xml/sax/expatreader.py", line 207, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/lib/python2.5/xml/sax/expatreader.py", line 301, in start_element
    self._cont_handler.startElement(name, AttributesImpl(attrs))
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 338, in startElement
    getattr(self, method)(attrs)
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 834, in begin_path
    self.parse_path(attrs['d'])
  File "/usr/lib/python2.5/site-packages/sk1/app/plugins/Filters/svgloader.py", line 677, in parse_path
    path.AppendLine(trafo(points[0], points[1]))
IndexError: list index out of range

Revision history for this message
Mantas Kriaučiūnas (mantas) wrote :
Revision history for this message
max (maxim-s-barabash) wrote :

In code

     # use tokenize_line to parse the arguments so that
     # we deal with signed numbers following another
     # number without intervening whitespace other
     # characters properls.
     # FIXME: tokenize_line works but is not the best way
     # to do it because it accepts input that wouldn't be
     # valid here.
     points = filter(operator.isNumberType,
         skread.tokenize_line(points))

The number 1.2639812e+08 filtered as 1.2159500000000001

Revision history for this message
max (maxim-s-barabash) wrote :

ups
The number 1.21595e+08 filtered as 1.2159500000000001

max (maxim-s-barabash)
Changed in baltix:
status: New → Fix Committed
Changed in sk1:
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.