]> git.sur5r.net Git - bacula/bacula/commitdiff
Lets fix calling INGfreeDescriptor before INGfreeINGresult as INGfreeINGresult free...
authorMarco van Wieringen <mvw@planets.elm.net>
Fri, 2 Apr 2010 19:50:48 +0000 (21:50 +0200)
committerMarco van Wieringen <mvw@planets.elm.net>
Fri, 9 Apr 2010 11:23:03 +0000 (13:23 +0200)
and the descriptor is part of that.

bacula/src/cats/myingres.c
bacula/src/cats/myingres.sc

index 227464b0ee31c4bfdde2c0e0b876807be80d3c16..29cf2f2623330d7d13632b411cc48f0be8894a3f 100644 (file)
@@ -272,7 +272,6 @@ static void INGfreeINGresult(INGresult *ing_res)
       free(ing_res->fields);
    }
    free(ing_res);
-   ing_res = NULL;
 }
 static inline ING_ROW *INGgetRowSpace(INGresult *ing_res)
 {
@@ -523,16 +522,20 @@ INGresult *INGquery(B_DB *mdb, INGconn *conn, const char *query)
    if (!desc) {
       return NULL;
    }
+
    res = INGgetINGresult(desc);
    if (!res) {
       return NULL;
    }
+
    rows = INGfetchAll(query, res);
+
    if (rows < 0) {
-     INGfreeINGresult(res);
      INGfreeDescriptor(desc);
+     INGfreeINGresult(res);
      return NULL;
    }
+
    return res;
 }
 void INGclear(INGresult *res)
@@ -540,8 +543,8 @@ void INGclear(INGresult *res)
    if (res == NULL) {
       return;
    }
-   INGfreeINGresult(res);
    INGfreeDescriptor(res->sqlda);
+   INGfreeINGresult(res);
 }
 INGconn *INGconnectDB(char *dbname, char *user, char *passwd)
 {
index 2ea172a5a6d08c6bf68b776e53cbba8003f021b2..e065313f4f5eda854e33858730e26c1a98de1be4 100644 (file)
@@ -297,7 +297,6 @@ static void INGfreeINGresult(INGresult *ing_res)
       free(ing_res->fields);
    }
    free(ing_res);
-   ing_res = NULL;
 }
 
 static inline ING_ROW *INGgetRowSpace(INGresult *ing_res)
@@ -552,17 +551,20 @@ INGresult *INGquery(B_DB *mdb, INGconn *conn, const char *query)
    if (!desc) {
       return NULL;
    }
+
    res = INGgetINGresult(desc);
    if (!res) {
       return NULL;
    }
+
    rows = INGfetchAll(query, res);
 
    if (rows < 0) {
-     INGfreeINGresult(res);
      INGfreeDescriptor(desc);
+     INGfreeINGresult(res);
      return NULL;
    }
+
    return res;
 }
 
@@ -572,8 +574,8 @@ void INGclear(INGresult *res)
       return;
    }
 
-   INGfreeINGresult(res);
    INGfreeDescriptor(res->sqlda);
+   INGfreeINGresult(res);
 }
 
 INGconn *INGconnectDB(char *dbname, char *user, char *passwd)