This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author slo.sleuth
Recipients slo.sleuth
Date 2016-04-07.01:33:59
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1459992841.57.0.391610307965.issue26707@psf.upfronthosting.co.za>
In-reply-to
Content
libplist raises an invalid file exception on loading properly formed binary plists containing UID (0x80) values.  The binary files were tested for form with plutil.

Comments at line 706 state the value is defined but not in use in plists, and the object is not handled.  However, I find them frequently in bplists, e.g., iOS Snapchat application files.  I have attached a proposed patch that I have tested on these files and can now successfully parse them with the _read_object method in the _BinaryPlistParser class.

My proposed patch is pasted below for others consideration while waiting for the issue to be resolved.

706,707c706,708
<         # tokenH == 0x80 is documented as 'UID' and appears to be used for
<         # keyed-archiving, not in plists.
---
>         elif tokenH == 0x80: #UID
>             s = self._get_size(tokenL)
>             return self._fp.read(s).decode('ascii')

Thanks for your consideration.
History
Date User Action Args
2016-04-07 01:34:01slo.sleuthsetrecipients: + slo.sleuth
2016-04-07 01:34:01slo.sleuthsetmessageid: <1459992841.57.0.391610307965.issue26707@psf.upfronthosting.co.za>
2016-04-07 01:34:01slo.sleuthlinkissue26707 messages
2016-04-07 01:34:00slo.sleuthcreate