From: Aki Tuomi Date: Mon, 14 Sep 2015 11:35:51 +0000 (+0300) Subject: Escape portal identifier X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~46^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2743%2Fhead;p=thirdparty%2Fpdns.git Escape portal identifier --- diff --git a/modules/gpgsqlbackend/spgsql.cc b/modules/gpgsqlbackend/spgsql.cc index 18f07d5877..d7c3fcc503 100644 --- a/modules/gpgsqlbackend/spgsql.cc +++ b/modules/gpgsqlbackend/spgsql.cc @@ -96,8 +96,10 @@ public: // by stored procedures. you can return more than one // if you return SETOF refcursor. if (PQftype(d_res_set, 0) == 1790) { // REFCURSOR - string portal = string(PQgetvalue(d_res_set, d_cur_set++, 0)); - string cmd = string("FETCH ALL FROM \"") + portal + string("\""); + char *val = PQgetvalue(d_res_set, d_cur_set++, 0); + char *portal = PQescapeIdentifier(d_db(), val, strlen(val)); + string cmd = string("FETCH ALL FROM \"") + string(portal) + string("\""); + PQfreemem(portal); // execute FETCH if (d_dolog) L<