OSDN Git Service

Variables should be free'ed only once.
authorMichael Meskes <meskes@postgresql.org>
Fri, 28 Jul 2006 11:49:36 +0000 (11:49 +0000)
committerMichael Meskes <meskes@postgresql.org>
Fri, 28 Jul 2006 11:49:36 +0000 (11:49 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ecpglib/execute.c

index 0bfe3ef..80d9ebc 100644 (file)
@@ -2043,7 +2043,7 @@ Mo Jun 26 16:08:23 CEST 2006
 
 We Jul  5 12:17:28 CEST 2006
 
-       - Fixed remaining Coverity bugs.
+       - Fixed most of the remaining Coverity bugs.
 
 Fr Jul 28 11:00:51 CEST 2006
 
@@ -2051,5 +2051,6 @@ Fr Jul 28 11:00:51 CEST 2006
                - SHOW statement puts result into a variable
                - COPY TO STDOUT works
                - Connection identifier has to be unique
+       - Variables should be free'ed only once.
        - Set ecpg library version to 5.2.
        - Set ecpg version to 4.2.1.
index 0a55141..e986462 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.54 2006/07/28 10:12:56 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.55 2006/07/28 11:49:36 meskes Exp $ */
 
 /*
  * The aim is to get a simpler inteface to the database routines.
@@ -1049,19 +1049,14 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
 
                        case ECPGt_timestamp:
                                {
-                                       char       *str = NULL, *asc = NULL;
+                                       char       *str = NULL;
                                        int                     slen;
 
                                        if (var->arrsize > 1)
                                        {
                                                for (element = 0; element < var->arrsize; element++)
                                                {
-                                                       asc = PGTYPEStimestamp_to_asc(*(timestamp *) ((var + var->offset * element)->value));
-                                                       if (!asc)
-                                                               return false;
-
-                                                       str = quote_postgres(asc, lineno);
-                                                       ECPGfree(asc); /* we don't need this anymore so free it asap. */
+                                                       str = quote_postgres(PGTYPEStimestamp_to_asc(*(timestamp *) ((var + var->offset * element)->value)), lineno);
                                                        if (!str)
                                                                return false;
 
@@ -1084,12 +1079,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
                                        }
                                        else
                                        {
-                                               asc = PGTYPEStimestamp_to_asc(*(timestamp *) (var->value));
-                                               if (!asc)
-                                                       return false;
-
-                                               str = quote_postgres(asc, lineno);
-                                               ECPGfree(asc); /* we don't need this anymore so free it asap. */
+                                               str = quote_postgres(PGTYPEStimestamp_to_asc(*(timestamp *) (var->value)), lineno);
                                                if (!str)
                                                        return false;
                                                slen = strlen(str);