• Oran Agra's avatar
    fix string to double conversion, stopped parsing on \0 even if the string has more data. · adf2701c
    Oran Agra authored
    getLongLongFromObject calls string2ll which has this line:
    /* Return if not all bytes were used. */
    so if you pass an sds with 3 characters "1\01" it will fail.
    
    but getLongDoubleFromObject calls strtold, and considers it ok if eptr[0]==`\0`
    i.e. if the end of the string found by strtold ends with null terminator
    
    127.0.0.1:6379> set a 1
    OK
    127.0.0.1:6379> setrange a 2 2
    (integer) 3
    127.0.0.1:6379> get a
    "1\x002"
    127.0.0.1:6379> incrbyfloat a 2
    "3"
    127.0.0.1:6379> get a
    "3"
    adf2701c
object.c 41.4 KB