• 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
plist.c 20.6 KB