Fix memory leak in connection string validation.
authorJeff Davis <jdavis@postgresql.org>
Sat, 13 Jan 2024 05:39:35 +0000 (21:39 -0800)
committerJeff Davis <jdavis@postgresql.org>
Sat, 13 Jan 2024 05:39:35 +0000 (21:39 -0800)
Introduced in commit c3afe8cf5a.

Discussion: https://postgr.es/m/066a65233d3cb4ea27a9e0778d2f1d0dc764b222.camel@j-davis.com
Reviewed-by: Nathan Bossart, Tom Lane
Backpatch-through: 16

src/backend/replication/libpqwalreceiver/libpqwalreceiver.c

index a5b1507559f02b0a1aa12fad27efc102f4364098..41910fd34e5de6357e973393755fa1cfe6087b21 100644 (file)
@@ -284,10 +284,15 @@ libpqrcv_check_conninfo(const char *conninfo, bool must_use_password)
        }
 
        if (!uses_password)
+       {
+           /* malloc'd, so we must free it explicitly */
+           PQconninfoFree(opts);
+
            ereport(ERROR,
                    (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
                     errmsg("password is required"),
                     errdetail("Non-superusers must provide a password in the connection string.")));
+       }
    }
 
    PQconninfoFree(opts);