• Tom Lane's avatar
    Fix lo_read, lo_write, lo_truncate to cope with "size_t" length parameters. · 0e924c00
    Tom Lane authored
    libpq defines these functions as accepting "size_t" lengths ... but the
    underlying backend functions expect signed int32 length parameters, and so
    will misinterpret any value exceeding INT_MAX.  Fix the libpq side to throw
    error rather than possibly doing something unexpected.
    
    This is a bug of long standing, but I doubt it's worth back-patching.  The
    problem is really pretty academic anyway with lo_read/lo_write, since any
    caller expecting sane behavior would have to have provided a multi-gigabyte
    buffer.  It's slightly more pressing with lo_truncate, but still we haven't
    supported large objects over 2GB until now.
    0e924c00
lobj.sgml 27.3 KB