mirror of
https://github.com/brianc/node-postgres.git
synced 2026-01-18 15:55:05 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fdf6650ebe | ||
|
|
7008bd9ccf |
@ -1,4 +1,5 @@
|
|||||||
var types = require(__dirname + '/types/');
|
var types = require(__dirname + '/types/');
|
||||||
|
var escape = require('js-string-escape');
|
||||||
|
|
||||||
//result object returned from query
|
//result object returned from query
|
||||||
//in the 'end' event and also
|
//in the 'end' event and also
|
||||||
@ -66,10 +67,13 @@ Result.prototype.addRow = function(row) {
|
|||||||
|
|
||||||
var inlineParser = function(fieldName, i) {
|
var inlineParser = function(fieldName, i) {
|
||||||
return "\nthis['" +
|
return "\nthis['" +
|
||||||
//fields containing single quotes will break
|
// fields containing single quotes will break
|
||||||
//the evaluated javascript unless they are escaped
|
// the evaluated javascript unless they are escaped
|
||||||
//see https://github.com/brianc/node-postgres/issues/507
|
// see https://github.com/brianc/node-postgres/issues/507
|
||||||
fieldName.replace("'", "\\'") +
|
// Addendum: However, we need to make sure to replace all
|
||||||
|
// occurences of apostrophes, not just the first one.
|
||||||
|
// See https://github.com/brianc/node-postgres/issues/934
|
||||||
|
escape(fieldName) +
|
||||||
"'] = " +
|
"'] = " +
|
||||||
"rowData[" + i + "] == null ? null : parsers[" + i + "](rowData[" + i + "]);";
|
"rowData[" + i + "] == null ? null : parsers[" + i + "](rowData[" + i + "]);";
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pg",
|
"name": "pg",
|
||||||
"version": "2.11.1",
|
"version": "2.11.2",
|
||||||
"description": "PostgreSQL client - pure javascript & libpq with the same API",
|
"description": "PostgreSQL client - pure javascript & libpq with the same API",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"postgres",
|
"postgres",
|
||||||
@ -20,6 +20,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"generic-pool": "2.0.3",
|
"generic-pool": "2.0.3",
|
||||||
"buffer-writer": "1.0.0",
|
"buffer-writer": "1.0.0",
|
||||||
|
"js-string-escape": "1.0.1",
|
||||||
"pgpass": "0.0.1",
|
"pgpass": "0.0.1",
|
||||||
"nan": "~0.6.0"
|
"nan": "~0.6.0"
|
||||||
},
|
},
|
||||||
|
|||||||
10
test/integration/client/field-name-escape-tests.js
Normal file
10
test/integration/client/field-name-escape-tests.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
var pg = require('./test-helper').pg
|
||||||
|
|
||||||
|
var sql = 'SELECT 1 AS "\\\'/*", 2 AS "\\\'*/\n + process.exit(-1)] = null;\n//"'
|
||||||
|
|
||||||
|
var client = new pg.Client()
|
||||||
|
client.connect()
|
||||||
|
client.query(sql, function (err, res) {
|
||||||
|
if (err) throw err
|
||||||
|
client.end()
|
||||||
|
})
|
||||||
Loading…
x
Reference in New Issue
Block a user