Skip to content

Commit 635d00e

Browse files
committed
Avoid malloc(0). Although standard mallocs seem not to object,
some debugging malloc packages do.
1 parent 332c694 commit 635d00e

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/pl/plpgsql/src/pl_comp.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* procedural language
44
*
55
* IDENTIFICATION
6-
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.65 2003/08/04 00:43:33 momjian Exp $
6+
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.66 2003/08/08 19:19:32 tgl Exp $
77
*
88
* This software is copyrighted by Jan Wieck - Hamburg.
99
*
@@ -1663,20 +1663,25 @@ plpgsql_add_initdatums(int **varnos)
16631663

16641664
if (varnos != NULL)
16651665
{
1666-
*varnos = (int *) malloc(sizeof(int) * n);
1667-
1668-
n = 0;
1669-
for (i = datums_last; i < plpgsql_nDatums; i++)
1666+
if (n > 0)
16701667
{
1671-
switch (plpgsql_Datums[i]->dtype)
1668+
*varnos = (int *) malloc(sizeof(int) * n);
1669+
1670+
n = 0;
1671+
for (i = datums_last; i < plpgsql_nDatums; i++)
16721672
{
1673-
case PLPGSQL_DTYPE_VAR:
1674-
(*varnos)[n++] = plpgsql_Datums[i]->dno;
1673+
switch (plpgsql_Datums[i]->dtype)
1674+
{
1675+
case PLPGSQL_DTYPE_VAR:
1676+
(*varnos)[n++] = plpgsql_Datums[i]->dno;
16751677

1676-
default:
1677-
break;
1678+
default:
1679+
break;
1680+
}
16781681
}
16791682
}
1683+
else
1684+
*varnos = NULL;
16801685
}
16811686

16821687
datums_last = plpgsql_nDatums;

0 commit comments

Comments
 (0)