libplist++ crashes when handling dictionary with adjacent key nodes
-
Martin S.
- State changed from new to open
- Tag set to libplist, parsing
- Assigned user set to Nikias Bassen
-
Nikias Bassen
Hi, can you try the attached patch (against latest git master)?
-
Yin Dian
Key.{cpp,h} is missing in cppfix.diff ...
-
Nikias Bassen
Sorry forgot the files, attached now. Key.cpp goes to src/Key.cpp and Key.h to include/plist/Key.h
Would you be able to test if it works as expected? I'm currently busy and don't want to dig into C++ coding right now ;) -
Yin Dian
Hi, I've just tried your patch and it does work as expected. I have modified SWIG binding accordingly to make it also function in Python, as attached.
However, in Python binding, Dictionary.iteritems() yields plist.Node instead of dynamic-cast-typed value like plist.String/Key. In addition, iteritems() results in a segmentation fault parsing the somefile.plist in the thread top. This is a separate issue, which could be circumvented by simply using iterkeys() and d[k] instead of iteritems().
-
Nikias Bassen
- State changed from open to resolved
Closing since confirmed working. @Yin Dian if the python issue still exists in the cython extensions please open a new ticket.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
