1. 08 Feb, 2017 1 commit
  2. 07 Feb, 2017 15 commits
  3. 06 Feb, 2017 3 commits
  4. 05 Feb, 2017 5 commits
  5. 04 Feb, 2017 1 commit
    • Nikias Bassen's avatar
      bplist: Fix OOB write on heap buffer and improve recursion check · c4dcf11b
      Nikias Bassen authored
      Issue #92 pointed out an problem with (invalid) bplist files which have
      exactly one structured node whose subnode reference itself.
      The recursion check used a fixed size array with the size of the total number
      of objects. In this case the number of objects is 1 but the recursion check
      code wanted to set the node_index for the level 1 which leads to an OOB write
      on the heap. This commit fixes/improves two things:
      1) Prevent OOB write by using a dynamic data storage for the used node
         indexes (plist_t of type PLIST_ARRAY)
      2) Reduces the memory usage of large binary plists, because not the total
         number of nodes in the binary plist, but the number of recursion levels
         is important for the recursion check.
      c4dcf11b
  6. 03 Feb, 2017 2 commits
  7. 01 Feb, 2017 3 commits
  8. 28 Jan, 2017 9 commits
  9. 25 Jan, 2017 1 commit
    • Nikias Bassen's avatar
      bplist: Fix UID node parsing to match Apple's parser · 6bf56a7c
      Nikias Bassen authored
      Apple only allows 32 bit unsigned values for UID nodes. Also the encoding
      of the length is different from the encoding used for other node types.
      The nibble used to mark the size is 1 less than the actual size of the integer
      value data, so 0 means 1 byte length 1 means 2 bytes length, etc.
      6bf56a7c