Re: PQescapestringConn not found in libpq.dll - Mailing list pgsql-general

From Tom Lane
Subject Re: PQescapestringConn not found in libpq.dll
Date
Msg-id 14107.1224246192@sss.pgh.pa.us
Whole thread Raw
In response to Re: PQescapestringConn not found in libpq.dll  (Glyn Astill <glynastill@yahoo.co.uk>)
Responses Re: PQescapestringConn not found in libpq.dll  (Glyn Astill <glynastill@yahoo.co.uk>)
List pgsql-general
Glyn Astill <glynastill@yahoo.co.uk> writes:
> Sorry to steer this off the topic a bit, but we have a 3rd party app that insists on using libpq.dll version
8.0.1.5031and we're on pgsql v 8.3.4.  
> Apart from lacking functionality, is there anything else I should be aware of i.e. could this cause us any serious
problems?

You really need to have a word with that application vendor.

I count the following noncosmetic patches applied to libpq in the 8.0
branch since 8.0.1.  Note that this only covers bugs considered serious
enough to back-patch, not feature improvements that are in more recent
branches.

2008-01-14 13:46  tgl

    * doc/src/sgml/protocol.sgml, src/interfaces/libpq/fe-protocol3.c
    (REL8_0_STABLE): Fix an ancient oversight in libpq's handling of
    V3-protocol COPY OUT mode: we need to be able to swallow NOTICE
    messages, and potentially also ParameterStatus messages (although
    the latter would be a bit weird), without exiting COPY OUT state.
    Fix it, and adjust the protocol documentation to emphasize the need
    for this.  Per off-list report from Alexander Galler.

2007-07-23 14:12  mha

    * src/interfaces/libpq/: fe-auth.c, fe-connect.c, libpq-int.h
    (REL8_0_STABLE): The correct min buffer size is
    INITIAL_EXPBUFFER_SIZE, not PQERRORMSG_LENGTH.

2006-05-21 16:20  tgl

    * doc/src/sgml/libpq.sgml, src/interfaces/libpq/exports.txt,
    src/interfaces/libpq/fe-connect.c, src/interfaces/libpq/fe-exec.c,
    src/interfaces/libpq/libpq-fe.h, src/interfaces/libpq/libpq-int.h
    (REL8_0_STABLE): Modify libpq's string-escaping routines to be
    aware of encoding considerations and standard_conforming_strings.
    The encoding changes are needed for proper escaping in multibyte
    encodings, as per the SQL-injection vulnerabilities noted in
    CVE-2006-2313 and CVE-2006-2314.  Concurrent fixes are being
    applied to the server to ensure that it rejects queries that may
    have been corrupted by attempted SQL injection, but this merely
    guarantees that unpatched clients will fail rather than allow
    injection.  An actual fix requires changing the client-side code.
    While at it we have also fixed these routines to understand about
    standard_conforming_strings, so that the upcoming changeover to
    SQL-spec string syntax can be somewhat transparent to client code.

    Since the existing API of PQescapeString and PQescapeBytea provides
    no way to inform them which settings are in use, these functions
    are now deprecated in favor of new functions PQescapeStringConn and
    PQescapeByteaConn.  The new functions take the PGconn to which the
    string will be sent as an additional parameter, and look inside the
    connection structure to determine what to do.  So as to provide
    some functionality for clients using the old functions, libpq
    stores the latest encoding and standard_conforming_strings values
    received from the backend in static variables, and the old
    functions consult these variables.  This will work reliably in
    clients using only one Postgres connection at a time, or even
    multiple connections if they all use the same encoding and string
    syntax settings; which should cover many practical scenarios.

    Clients that use homebrew escaping methods, such as PHP's
    addslashes() function or even hardwired regexp substitution, will
    require extra effort to fix :-(.  It is strongly recommended that
    such code be replaced by use of
    PQescapeStringConn/PQescapeByteaConn if at all feasible.

2006-05-21 15:57  momjian

    * contrib/dbmirror/DBMirror.pl, contrib/dbmirror/pending.c,
    contrib/tsearch/expected/tsearch.out,
    contrib/tsearch/sql/tsearch.sql,
    contrib/tsearch2/expected/tsearch2.out,
    contrib/tsearch2/sql/tsearch2.sql,
    src/backend/utils/adt/ruleutils.c, src/bin/initdb/initdb.c,
    src/bin/pg_dump/pg_dump.c, src/bin/psql/large_obj.c,
    src/interfaces/ecpg/test/test1.pgc, src/interfaces/libpq/fe-exec.c,
    src/pl/plpgsql/src/gram.y, src/tutorial/funcs.source
    (REL8_0_STABLE): Change \' to '', for SQL standards compliance.
    Backpatch to 7.3, 7.4, and 8.0.  Later releases already patched.

2006-04-19 12:15  tgl

    * src/interfaces/libpq/fe-print.c (REL8_0_STABLE): Fix ancient
    memory leak in PQprintTuples(); our code no longer uses this
    routine, but perhaps some applications do.  Found by Martijn van
    Oosterhout using Coverity.

2005-07-13 11:26  tgl

    * src/interfaces/libpq/fe-connect.c (REL8_0_STABLE): Fix libpq
    memory leak during PQreset() --- closePGconn() was not freeing all
    transient state of the PGconn object.

2005-07-08 11:24  tgl

    * src/interfaces/libpq/fe-misc.c (REL8_0_STABLE): Make
    libpq_gettext save and restore errno in a Windows-compatible way.
    Also, back-patch fix into back branches.

2005-05-05 12:36  momjian

    * src/interfaces/libpq/fe-connect.c (REL8_0_STABLE): Add
    WSACleanup() for Win32 socket cleanup.

    Jason Erickson

2005-03-24 19:35  tgl

    * configure, configure.in, src/backend/postmaster/pgstat.c,
    src/backend/postmaster/postmaster.c, src/include/port.h,
    src/interfaces/libpq/Makefile, src/interfaces/libpq/fe-auth.c,
    src/interfaces/libpq/fe-connect.c, src/port/noblock.c
    (REL8_0_STABLE): Kerberos fixes from Magnus Hagander --- in theory
    Kerberos 5 auth should work on Windows now.  Also, rename
    set_noblock to pg_set_noblock; since it is included in libpq, the
    former name polluted application namespace.

2005-03-13 17:04  momjian

    * src/interfaces/: ecpg/compatlib/Makefile, ecpg/ecpglib/Makefile,
    ecpg/pgtypeslib/Makefile, ecpg/preproc/Makefile, libpq/Makefile
    (REL8_0_STABLE): Increment all major version numbers in 8.0.X to
    force recompile of client aplications so 7.4.X releases can be
    installed on the same machine as 8.0.X.

            regards, tom lane

pgsql-general by date:

Previous
From: Michael Glaesemann
Date:
Subject: Re: Annoying Reply-To
Next
From: Mikkel Høgh
Date:
Subject: Re: Annoying Reply-To