static int pgsql_conn_open(struct pgsql_connection *conn);
static void pgsql_conn_close(struct pgsql_connection *conn);
+const char *db_pgsql_escape(const char *str)
+{
+ char *esc_str;
+ size_t len = strlen(str);
+
+ /* @UNSAFE */
+ esc_str = t_malloc(len*2+1);
+ PQescapeString(esc_str, str, len);
+ return esc_str;
+}
+
void db_pgsql_query(struct pgsql_connection *conn, const char *query,
struct pgsql_request *request)
{
void *context;
};
+const char *db_pgsql_escape(const char *str);
+
void db_pgsql_query(struct pgsql_connection *conn, const char *query,
struct pgsql_request *request);
str = t_str_new(512);
var_expand(str, conn->set.password_query,
- str_escape(auth_request->user), NULL);
+ db_pgsql_escape(auth_request->user), NULL);
query = str_c(str);
pgsql_request->callback = pgsql_handle_request;
string_t *str;
str = t_str_new(512);
- var_expand(str, conn->set.user_query, str_escape(user), NULL);
+ var_expand(str, conn->set.user_query, db_pgsql_escape(user), NULL);
query = str_c(str);
request = i_malloc(sizeof(struct userdb_pgsql_request) + strlen(user));