Skip to content

Commit

Permalink
Skip empty and commented pgpass entries (#1216)
Browse files Browse the repository at this point in the history
While running an application a lot of warnings were printed about my
pgpass file, like:

	Malformed line in pgpass file

This was due to the fact that my pgpass file contains whitespace and
comments to organize it in a better way.

This commit ensures we will ignore empty lines and lines that (barring
whitespace) start with a comment. This is in line with how PostgreSQL
treats these entries in the pgpass file:

- https://www.postgresql.org/docs/current/libpq-pgpass.html
- function passwordFromFile in src/interfaces/libpq/fe-connect.c
  • Loading branch information
feikesteenbergen authored May 10, 2021
1 parent 405474b commit 78a9424
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions sqlx-core/src/postgres/options/pgpass.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,17 @@ fn load_password_from_line(
database: Option<&str>,
) -> Option<String> {
let whole_line = line;
matches_next_field(whole_line, &mut line, host)?;
matches_next_field(whole_line, &mut line, &port.to_string())?;
matches_next_field(whole_line, &mut line, username)?;
matches_next_field(whole_line, &mut line, database.unwrap_or_default())?;
Some(line.to_owned())

match line.trim_start().chars().next() {
None | Some('#') => None,
_ => {
matches_next_field(whole_line, &mut line, host)?;
matches_next_field(whole_line, &mut line, &port.to_string())?;
matches_next_field(whole_line, &mut line, username)?;
matches_next_field(whole_line, &mut line, database.unwrap_or_default())?;
Some(line.to_owned())
}
}
}

/// check if the next field matches the provided value
Expand Down

0 comments on commit 78a9424

Please sign in to comment.