libpq: Improve error handling in passwordFromFile()

Michael Paquier <michael@paquier.xyz>

Commit: 861af9261035cec7408040d646cba92959ba6f13
Author: Michael Paquier <michael@paquier.xyz>
Date: 2025-11-04T11:12:48Z
libpq: Improve error handling in passwordFromFile()

Previously, passwordFromFile() returned NULL for valid cases (like no
matching password found) and actual errors (two out-of-memory paths).
This made it impossible for its sole caller, pqConnectOptions2(), to
distinguish between these scenarios and fail the connection
appropriately should an out-of-memory error occur.

This patch extends passwordFromFile() to be able to detect both valid
and failure cases, with an error string given back to the caller of the
function.

Out-of-memory failures unlikely happen in the field, so no backpatch is
done.

Author: Joshua Shanks <jjshanks@gmail.com>
Discussion: https://postgr.es/m/CAOxqWDfihFRmhNVdfu8epYTXQRxkCHSOrg+=-ij2c_X3gW=o3g@mail.gmail.com

Files

PathChange+/−
src/interfaces/libpq/fe-connect.c modified +28 −7

Discussion