1. 01 Jan, 2017 5 commits
  2. 21 Dec, 2016 3 commits
  3. 14 Dec, 2016 4 commits
  4. 28 Nov, 2016 1 commit
    • Nikias Bassen's avatar
      xplist: Fix parsing of adjacent nodes without whitespace between them · 5e8fb617
      Nikias Bassen authored
      The context position counter was increased after encountering a closing
      node, e.g. '</dict>' or after a closing '</key>' node. When a node followed
      it directly without any whitespace inbetween, e.g. </dict><key>, parsing
      would fail since the parser would look at 'key>' instead of '<key>' for the
      next node to be parsed.
      5e8fb617
  5. 27 Nov, 2016 1 commit
  6. 18 Nov, 2016 2 commits
  7. 13 Nov, 2016 5 commits
  8. 10 Nov, 2016 5 commits
  9. 09 Nov, 2016 1 commit
  10. 31 Oct, 2016 4 commits
  11. 24 Oct, 2016 1 commit
  12. 22 Oct, 2016 1 commit
  13. 19 Sep, 2016 1 commit
  14. 18 Sep, 2016 1 commit
    • Nikias Bassen's avatar
      Change internal storage of PLIST_DATE values from struct timeval to double · 912cb459
      Nikias Bassen authored
      This removes the timeval union member from the plist_data_t structure.
      Since struct timeval is 2x64bit on 64bit platforms this member unnecessarily
      grew the union size to 16 bytes while a size of 8 bytes is sufficient.
      Also, on 32bit platforms struct timeval is only 2x32bit of size, limiting the
      range of possible time values. In addition the binary property list format
      also stores PLIST_DATE nodes as double.
      912cb459
  15. 08 Sep, 2016 1 commit
  16. 29 Jun, 2016 2 commits
    • Nikias Bassen's avatar
      xplist: Plug memory leak when converting PLIST_UID nodes to XML · 16f45a04
      Nikias Bassen authored
      In node_to_xml nodes of type PLIST_UID are temporarily converted
      to a PLIST_DICT for an appropriate XML output. Therefore a PLIST_KEY
      and a PLIST_UINT node is created and inserted into the PLIST_DICT
      node. Upon completion, the child nodes of the PLIST_DICT node are
      detached from the original node and freed, however the data of the
      child nodes - the key string and the uint value - are not.
      This commit fixes it.
      16f45a04
    • Nikias Bassen's avatar
      plist_data_compare: Make sure to compare the node sizes for integer nodes · acd226d1
      Nikias Bassen authored
      Without this check, e.g. the values -1 and 18446744073709551615 would yield in a
      match, since the comparison will just compare the uint64_t values. However, any
      value >= 9223372036854775808 and <= 18446744073709551615 is stored as a 128 bit
      value in binary plist format to make sure it is recognized as an unsigned value.
      We store it internally as a uint64_t value, but we set the size to 16 vs. 8
      accordingly; so this commit will make sure the binary plist optimization will
      not re-use matching uint64_t values of actually mismatching signed/unsigned values.
      acd226d1
  17. 12 May, 2016 2 commits
    • Christophe Fergeau's avatar
      Implement plist_from_memory() · 11d639f9
      Christophe Fergeau authored
      Rather than having everyone reimplement binary/XML plist detection by
      looking at the first bytes of the plist content, it's better to do this
      detection in libplist and hide that internal detail from library users.
      11d639f9
    • Christophe Fergeau's avatar
      Add plist_is_binary() · 449e27bf
      Christophe Fergeau authored
      It can be useful if one needs to know what type of plist a memory buffer
      contains.
      449e27bf