• Tom Lane's avatar
    When reading pg_hba.conf and similar files, do not treat @file as an inclusion · b8b34b7b
    Tom Lane authored
    unless (1) the @ isn't quoted and (2) the filename isn't empty.  This guards
    against unexpectedly treating usernames or other strings in "flat files"
    as inclusion requests, as seen in a recent trouble report from Ed L.
    The empty-filename case would be guaranteed to misbehave anyway, because our
    subsequent path-munging behavior results in trying to read the directory
    containing the current input file.
    
    I think this might finally explain the report at
    http://archives.postgresql.org/pgsql-bugs/2004-05/msg00132.php
    of a crash after printing "authentication file token too long, skipping",
    since I was able to duplicate that message (though not a crash) on a
    platform where stdio doesn't refuse to read directories.  We never got
    far in investigating that problem, but now I'm suspicious that the trigger
    condition was an @ in the flat password file.
    
    Back-patch to all active branches since the problem can be demonstrated in all
    branches except HEAD.  The test case, creating a user named "@", doesn't cause
    a problem in HEAD since we got rid of the flat password file.  Nonetheless it
    seems like a good idea to not consider quoted @ as a file inclusion spec,
    so I changed HEAD too.
    b8b34b7b
hba.c 45.9 KB