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

index 0bfe3ef928d0fc4641444fd5468c8d3adf6872a7..80d9ebc3facdab632a68cc16012c156da2a42dcb 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 0a55141731312b77909ea6b70b5c7987b8f8ba90..e98646214d41e64b8f2ff18569ba7099a41177bc 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);