• Noah Misch's avatar
    Fix handling of wide datetime input/output. · 4318daec
    Noah Misch authored
    Many server functions use the MAXDATELEN constant to size a buffer for
    parsing or displaying a datetime value.  It was much too small for the
    longest possible interval output and slightly too small for certain
    valid timestamp input, particularly input with a long timezone name.
    The long input was rejected needlessly; the long output caused
    interval_out() to overrun its buffer.  ECPG's pgtypes library has a copy
    of the vulnerable functions, which bore the same vulnerabilities along
    with some of its own.  In contrast to the server, certain long inputs
    caused stack overflow rather than failing cleanly.  Back-patch to 8.4
    (all supported versions).
    
    Reported by Daniel Schüssler, reviewed by Tom Lane.
    
    Security: CVE-2014-0063
    4318daec
interval.out 23.7 KB