• Alexey Kopytov's avatar
    Bug #44796: valgrind: too many my_longlong10_to_str_8bit · 0b62b7f2
    Alexey Kopytov authored
                 warnings after uncompressed_length 
     
    UNCOMPRESSED_LENGTH() did not validate its argument. In 
    particular, if the argument length was less than 4 bytes, 
    an uninitialized memory value was returned as a result. 
     
    Since the result of COMPRESS() is either an empty string or 
    a 4-byte length prefix followed by compressed data, the bug was 
    fixed by ensuring that the argument of UNCOMPRESSED_LENGTH() is 
    either an empty string or contains at least 5 bytes (as done in 
    UNCOMPRESS()). This is the best we can do to validate input 
    without decompressing. 
    
    mysql-test/r/func_compress.result:
      Added a test case for bug #44796.
    mysql-test/t/func_compress.test:
      Added a test case for bug #44796.
    sql/item_strfunc.cc:
      Make sure that the argument of UNCOMPRESSED_LENGTH() contains 
      at least 5 bytes (as done in UNCOMPRESS()).
    0b62b7f2
item_strfunc.cc 87.5 KB