Use PQescapeBytea() for quoting. Need to think how to add binary safe

quoting for blobls (pgsql bytea type).
Fixes #2818
This commit is contained in:
Edin Kadribasic 2005-01-17 10:37:41 +00:00
parent 3a751f37c6
commit 095a6f1eb3

View File

@ -175,18 +175,12 @@ static long pgsql_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRM
static int pgsql_handle_quoter(pdo_dbh_t *dbh, const char *unquoted, int unquotedlen, char **quoted, int *quotedlen TSRMLS_DC)
{
unsigned char *escaped;
/* escapedlen returned by PQescapeBytea() accounts for trailing 0 */
escaped = PQescapeBytea(unquoted, unquotedlen, quotedlen);
*quotedlen += 1;
*quoted = emalloc(*quotedlen + 1);
memcpy((*quoted)+1, escaped, *quotedlen-2);
*quoted = emalloc(2*unquotedlen + 3);
(*quoted)[0] = '\'';
(*quoted)[*quotedlen-1] = '\'';
(*quoted)[*quotedlen] = '\0';
free(escaped);
*quotedlen = PQescapeString(*quoted + 1, unquoted, unquotedlen);
(*quoted)[*quotedlen + 1] = '\'';
(*quoted)[*quotedlen + 2] = '\0';
*quotedlen += 2;
return 1;
}