mirror of
https://github.com/postgres/postgres.git
synced 2025-09-09 13:09:39 +03:00
Repair problems with to_char() overrunning its input string.
From Karel Zak.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
/* -----------------------------------------------------------------------
|
/* -----------------------------------------------------------------------
|
||||||
* formatting.c
|
* formatting.c
|
||||||
*
|
*
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.56 2002/09/20 03:57:09 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.56.2.1 2003/09/03 15:00:07 tgl Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Portions Copyright (c) 1999-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1999-2002, PostgreSQL Global Development Group
|
||||||
@@ -1264,6 +1264,16 @@ DCH_processor(FormatNode *node, char *inout, int flag, void *data)
|
|||||||
|
|
||||||
for (n = node, s = inout; n->type != NODE_TYPE_END; n++)
|
for (n = node, s = inout; n->type != NODE_TYPE_END; n++)
|
||||||
{
|
{
|
||||||
|
if (flag == FROM_CHAR && *s=='\0')
|
||||||
|
/*
|
||||||
|
* The input string is shorter than format picture,
|
||||||
|
* so it's good time to break this loop...
|
||||||
|
*
|
||||||
|
* Note: this isn't relevant for TO_CHAR mode, beacuse
|
||||||
|
* it use 'inout' allocated by format picture length.
|
||||||
|
*/
|
||||||
|
break;
|
||||||
|
|
||||||
if (n->type == NODE_TYPE_ACTION)
|
if (n->type == NODE_TYPE_ACTION)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
|
Reference in New Issue
Block a user