From: Michael Meskes Date: Sat, 1 Nov 2008 08:55:21 +0000 (+0000) Subject: Do not eat memory even in case of an out-of-memory error. X-Git-Tag: REL8_4_BETA1~786 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e6c7f7c1ad83f90d72faabb4adb73dd2e16c3daf;p=postgresql Do not eat memory even in case of an out-of-memory error. --- diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 928d412c95..3d8d6ab25f 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -2386,6 +2386,10 @@ Fri, 10 Oct 2008 14:03:05 +0200 Tue, 14 Oct 2008 11:25:51 +0200 - Fixed parameter parsing. + +Sat, 25 Oct 2008 16:34:28 +0200 + + - Free allocated memory even if the next alloc failed with ENOMEM. - Set pgtypes library version to 3.1. - Set compat library version to 3.1. - Set ecpg library version to 6.2. diff --git a/src/interfaces/ecpg/compatlib/informix.c b/src/interfaces/ecpg/compatlib/informix.c index c3c8749cf8..b5ee3e6738 100644 --- a/src/interfaces/ecpg/compatlib/informix.c +++ b/src/interfaces/ecpg/compatlib/informix.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/informix.c,v 1.55 2008/05/16 15:20:03 petere Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/informix.c,v 1.56 2008/11/01 08:55:21 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -755,10 +755,16 @@ rfmtlong(long lng_val, char *fmt, char *outbuf) fmtchar = ' '; temp = (char *) malloc(fmt_len + 1); + if (!temp) + { + errno = ENOMEM; + return -1; + } /* put all info about the long in a struct */ - if (!temp || initValue(lng_val) == -1) + if (initValue(lng_val) == -1) { + free(temp); errno = ENOMEM; return -1; }