1. 09 Dec, 2019 2 commits
  2. 05 Dec, 2019 1 commit
  3. 07 Nov, 2019 7 commits
  4. 23 Oct, 2019 1 commit
  5. 02 Sep, 2019 1 commit
  6. 13 Aug, 2019 1 commit
  7. 09 Aug, 2019 1 commit
    • Nikias Bassen's avatar
      Make sure to copy hash table entries properly when cloning array/dict nodes · e1a5d60e
      Nikias Bassen authored
      As mentioned in #142, plist_copy_node() was not correctly handling the hash
      tables when cloning array or dict nodes; it incorrectly filled the hash table
      with the original child node info, which effectively would lead to a
      segmentation fault / UaF if the original array/dict would be freed followed
      by an attempt to access an element in the new hash table.
      e1a5d60e
  8. 08 Aug, 2019 2 commits
  9. 07 Aug, 2019 1 commit
  10. 10 Jul, 2019 2 commits
  11. 07 Jul, 2019 1 commit
    • Alexander Böhn's avatar
      Add PList::Dictionary::const_iterator · 7d6b42c9
      Alexander Böhn authored
      ... and const versions of three member functions, each returning const_iterator:
      * Plist::Dictionary::Begin()
      * PList::Dictionary::End()
      * PList::Dictionary::Find()
      7d6b42c9
  12. 26 Jun, 2019 1 commit
    • tihmstar's avatar
      Fixed bug in dictionary_fill · ec957fb8
      tihmstar authored
      Bug: when creating a new Dictionary object (for example through PList::Node::FromPlist(plist_t node) ), the dictionary_fill function is called from Dictionary() constructor in line 50. It seems that the intended way of calling dictionary_fill() is to pass the _map object by reference, however it is actually passed by value. Thus the changes to the map object made by dictionary_fill() are discarded when the function returns.
      
      Fix: pass _map by reference to keep the changes
      ec957fb8
  13. 19 May, 2019 2 commits
  14. 18 May, 2019 3 commits
  15. 16 May, 2019 3 commits
  16. 11 May, 2019 3 commits
  17. 03 Apr, 2019 1 commit
  18. 21 Jan, 2019 5 commits
  19. 18 Jan, 2019 1 commit
  20. 23 Dec, 2018 1 commit
    • Nikias Bassen's avatar
      plist: Improve plist_dict_next_item() drastically by iterating on node list directly · 3f967317
      Nikias Bassen authored
      As Xiao Deng pointed out in #131, plist_dict_next_item() was very inefficient.
      For each iteration, node_nth_child() was called with the iterator value, which
      would walk through the child node list on EVERY iteration. If the dictionary
      is large this makes things very slow. More than that, after reaching the key
      node the code was calling node_nth_child() AGAIN (with iterator value + 1) to
      reach the value node, which would walk through the node list once more.
      This commit changes the iterator to be a node_t pointer so that the iteration
      is done on the node list directly.
      3f967317