]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Moved some free() calls that coverity correctly complains about.
authorMichael Meskes <meskes@postgresql.org>
Sun, 25 Jun 2006 10:00:11 +0000 (10:00 +0000)
committerMichael Meskes <meskes@postgresql.org>
Sun, 25 Jun 2006 10:00:11 +0000 (10:00 +0000)
src/interfaces/ecpg/ecpglib/execute.c

index ff92354be134e9f28f549da4ebd7dc843ae84b7f..bc2300e5fa16abe7f4cb4cc8c09b00d38b6bec40 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.38.4.6 2006/06/21 11:38:35 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.38.4.7 2006/06/25 10:00:11 meskes Exp $ */
 
 /*
  * The aim is to get a simpler inteface to the database routines.
@@ -900,7 +900,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
                                                        if (!(mallocedval = ECPGrealloc(mallocedval, strlen(mallocedval) + slen + sizeof("array [] "), lineno)))
                                                        {
                                                                PGTYPESnumeric_free(nval);
-                                                               free(str);
+                                                               ECPGfree(str);
                                                                return false;
                                                        }
 
@@ -909,8 +909,9 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
 
                                                        strncpy(mallocedval + strlen(mallocedval), str, slen + 1);
                                                        strcpy(mallocedval + strlen(mallocedval), ",");
+                                                       ECPGfree(str);
+                                                       PGTYPESnumeric_free(nval);
                                                }
-                                               PGTYPESnumeric_free(nval);
                                                strcpy(mallocedval + strlen(mallocedval) - 1, "]");
                                        }
                                        else
@@ -933,12 +934,12 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
 
                                                strncpy(mallocedval, str, slen);
                                                mallocedval[slen] = '\0';
+                                               ECPGfree(str);
+                                               PGTYPESnumeric_free(nval);
                                        }
 
                                        *tobeinserted_p = mallocedval;
                                        *malloced_p = true;
-                                       PGTYPESnumeric_free(nval);
-                                       free(str);
                                }
                                break;
 
@@ -968,6 +969,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
                                                        strcpy(mallocedval + strlen(mallocedval), "interval ");
                                                        strncpy(mallocedval + strlen(mallocedval), str, slen + 1);
                                                        strcpy(mallocedval + strlen(mallocedval), ",");
+                                                       ECPGfree(str);
                                                }
                                                strcpy(mallocedval + strlen(mallocedval) - 1, "]");
                                        }
@@ -987,11 +989,11 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
                                                strcpy(mallocedval, "interval ");
                                                /* also copy trailing '\0' */
                                                strncpy(mallocedval + strlen(mallocedval), str, slen + 1);
+                                               ECPGfree(str);
                                        }
 
                                        *tobeinserted_p = mallocedval;
                                        *malloced_p = true;
-                                       ECPGfree(str);
                                }
                                break;
 
@@ -1168,6 +1170,7 @@ ECPGexecute(struct statement * stmt)
                        if (desc == NULL)
                        {
                                ECPGraise(stmt->lineno, ECPG_UNKNOWN_DESCRIPTOR, ECPG_SQLSTATE_INVALID_SQL_DESCRIPTOR_NAME, var->pointer);
+                               ECPGfree(copiedquery);
                                return false;
                        }
 
@@ -1199,7 +1202,10 @@ ECPGexecute(struct statement * stmt)
                                                        desc_inlist.ind_offset = 0;
                                                }
                                                if (!ECPGstore_input(stmt->lineno, stmt->force_indicator, &desc_inlist, &tobeinserted, &malloced))
+                                               {
+                                                       ECPGfree(copiedquery);
                                                        return false;
+                                               }
 
                                                break;
                                        }