pgsql: Fix handling of wide datetime input/output. - Mailing list pgsql-committers

From Noah Misch
Subject pgsql: Fix handling of wide datetime input/output.
Date
Msg-id E1WFPlR-0000fy-Vn@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix handling of wide datetime input/output.

Many server functions use the MAXDATELEN constant to size a buffer for
parsing or displaying a datetime value.  It was much too small for the
longest possible interval output and slightly too small for certain
valid timestamp input, particularly input with a long timezone name.
The long input was rejected needlessly; the long output caused
interval_out() to overrun its buffer.  ECPG's pgtypes library has a copy
of the vulnerable functions, which bore the same vulnerabilities along
with some of its own.  In contrast to the server, certain long inputs
caused stack overflow rather than failing cleanly.  Back-patch to 8.4
(all supported versions).

Reported by Daniel Schüssler, reviewed by Tom Lane.

Security: CVE-2014-0063

Branch
------
REL9_3_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/e4a4fa22352b062bc3548c91fa9bfc6caed7b073

Modified Files
--------------
src/include/utils/datetime.h                       |   17 +++++---
src/interfaces/ecpg/pgtypeslib/datetime.c          |    4 +-
src/interfaces/ecpg/pgtypeslib/dt.h                |   17 +++++---
src/interfaces/ecpg/pgtypeslib/dt_common.c         |   44 ++++++++++++++------
src/interfaces/ecpg/pgtypeslib/interval.c          |    2 +-
src/interfaces/ecpg/pgtypeslib/timestamp.c         |    2 +-
.../ecpg/test/expected/pgtypeslib-dt_test2.c       |   22 +++++++---
.../ecpg/test/expected/pgtypeslib-dt_test2.stdout  |   19 +++++++++
src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc   |   10 +++++
src/test/regress/expected/interval.out             |    7 ++++
src/test/regress/sql/interval.sql                  |    2 +
11 files changed, 111 insertions(+), 35 deletions(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: pgsql: Avoid repeated name lookups during table and index DDL.
Next
From: Noah Misch
Date:
Subject: pgsql: Prevent privilege escalation in explicit calls to PL validators.