]> granicus.if.org Git - postgresql/commitdiff
Do not use already free'ed errmsg, bug found by Joachim Wieland
authorMichael Meskes <meskes@postgresql.org>
Mon, 19 Jun 2006 09:19:49 +0000 (09:19 +0000)
committerMichael Meskes <meskes@postgresql.org>
Mon, 19 Jun 2006 09:19:49 +0000 (09:19 +0000)
<joachim.wieland@credativ.de>

src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ecpglib/connect.c

index 44fab3b45409e40f3dc2d91d240052bc93b68022..7cf7c104e846eff988946f40ac8cca63de08a873 100644 (file)
@@ -1996,15 +1996,24 @@ Tu Feb  7 18:48:14 CET 2006
 
 Fri, 17 Mar 2006 16:38:19 +0100
 
-       - Fixed bug 2330: Wrong error code in case of a duplicate key
+       - Fixed bug 2330: Wrong error code in case of a duplicate key.
 
 Mo Apr 24 11:40:05 CEST 2006
 
        - Fixed memory leak bugs found by Martijn Oosterhout.
 
-Mi Mai 31 10:10:36 CEST 2006
+We Mai 31 10:10:36 CEST 2006
 
-       - Fixed PGTYPESdate_from_timestamp because some characters got lost there
+       - Fixed PGTYPESdate_from_timestamp because some characters got lost there.
+
+Tu Jun  6 12:09:56 CEST 2006
+
+       - Fixed two more memory leaks in ecpglib.
+       - Synced parser.
+
+Mo Jun 19 11:15:50 CEST 2006
+
+       - Do not use already free'ed errmsg, bug found by Joachim Wieland
+         <joachim.wieland@credativ.de>
        - Set ecpg library version to 5.2.
        - Set ecpg version to 4.2.1.
-
index b5e023dcadc5fa73852a9590ad196d7d54e3c8bc..b3209db5cd2b9c834871d98368167fd1a95de0ab 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.27 2005/11/30 12:49:49 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.28 2006/06/19 09:19:49 meskes Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -456,10 +456,6 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
                const char *errmsg = PQerrorMessage(this->connection);
                char       *db = realname ? realname : "<DEFAULT>";
 
-               ecpg_finish(this);
-#ifdef ENABLE_THREAD_SAFETY
-               pthread_mutex_unlock(&connections_mutex);
-#endif
                ECPGlog("connect: could not open database %s on %s port %s %s%s%s%s in line %d\n\t%s\n",
                                db,
                                host ? host : "<DEFAULT>",
@@ -468,6 +464,11 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
                                user ? "for user " : "", user ? user : "",
                                lineno, errmsg);
 
+               ecpg_finish(this);
+#ifdef ENABLE_THREAD_SAFETY
+               pthread_mutex_unlock(&connections_mutex);
+#endif
+
                ECPGraise(lineno, ECPG_CONNECT, ECPG_SQLSTATE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION, db);
                if (host)
                        ECPGfree(host);