• Joe Conway's avatar
    Read until EOF vice stat-reported size in read_binary_file · 96d1f423
    Joe Conway authored
    read_binary_file(), used by SQL functions pg_read_file() and friends,
    uses stat to determine file length to read, when not passed an explicit
    length as an argument. This is problematic, for example, if the file
    being read is a virtual file with a stat-reported length of zero.
    Arrange to read until EOF, or StringInfo data string lenth limit, is
    reached instead.
    
    Original complaint and patch by me, with significant review, corrections,
    advice, and code optimizations by Tom Lane. Backpatched to v11. Prior to
    that only paths relative to the data and log dirs were allowed for files,
    so no "zero length" files were reachable anyway.
    
    Reviewed-By: Tom Lane
    Discussion: https://postgr.es/m/flat/969b8d82-5bb2-5fa8-4eb1-f0e685c5d736%40joeconway.com
    Backpatch-through: 11
    96d1f423
genfile.c 18.5 KB