Changeset: f6fe56770d42 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f6fe56770d42
Modified Files:
        monetdb5/mal/mal_authorize.c
        sql/backends/monet5/sql_user.c
        sql/backends/monet5/sql_user.h
Branch: userprofile
Log Message:

fix leak


diffs (108 lines):

diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -865,6 +865,7 @@ AUTHgetPasswordHash(str *ret, Client cnt
        // BUN p;
        // BATiter i;
        str tmp;
+       str msg;
        str passwd = NULL;
 
        rethrow("getPasswordHash", tmp, AUTHrequireAdmin(cntxt));
@@ -880,8 +881,13 @@ AUTHgetPasswordHash(str *ret, Client cnt
                throw(MAL, "getPasswordHash", "user '%s' does not exist", 
username);
        }
        /* decypher the password */
-       if ((tmp = AUTHdecypherValue(&passwd, tmp)) != MAL_SUCCEED)
-               return tmp;
+       if ((msg = AUTHdecypherValue(&passwd, tmp)) != MAL_SUCCEED) {
+               GDKfree(tmp);
+               return msg;
+       }
+
+       if(tmp)
+               GDKfree(tmp);
 
        // TODO remove old implementation
        // p = AUTHfindUser(username);
@@ -1224,6 +1230,7 @@ AUTHaddRemoteTableCredentials(const char
                        return output;
 
                if((output = scenario->exitClientCmd(c)) != MAL_SUCCEED) {
+                       GDKfree(pwhash);
                        return output;
                }
                MCfreeClient(c);
diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -113,7 +113,7 @@ getUserNameCallback(Client c)
 static str
 getUserPasswordCallback(Client c, const char *user)
 {
-       str res;
+       str res = NULL;
        backend *be = (backend *) c->sqlcontext;
        if (be) {
                mvc *m = be->mvc;
@@ -122,10 +122,9 @@ getUserPasswordCallback(Client c, const 
                        oid rid = getUserOIDByName(m, user);
                        res = getUserPassword(m, rid);
                        sql_trans_end(m->session, SQL_OK);
-                       return res;
                }
        }
-       return NULL;
+       return res;
 }
 
 
@@ -515,21 +514,21 @@ monet5_find_user(ptr mp, str user)
        // return (p == BUN_NONE ? -1 : 1);
 }
 
-str
-db_users_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       bat *r = getArgReference_bat(stk, pci, 0);
-       BAT *uid, *nme;
-       str err;
-
-       (void) mb;
-       if ((err = AUTHgetUsers(&uid, &nme, cntxt)) != MAL_SUCCEED)
-               return err;
-       BBPunfix(uid->batCacheid);
-       *r = nme->batCacheid;
-       BBPkeepref(nme);
-       return MAL_SUCCEED;
-}
+// str
+// db_users_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+// {
+//     bat *r = getArgReference_bat(stk, pci, 0);
+//     BAT *uid, *nme;
+//     str err;
+//
+//     (void) mb;
+//     if ((err = AUTHgetUsers(&uid, &nme, cntxt)) != MAL_SUCCEED)
+//             return err;
+//     BBPunfix(uid->batCacheid);
+//     *r = nme->batCacheid;
+//     BBPkeepref(nme);
+//     return MAL_SUCCEED;
+// }
 
 
 str
diff --git a/sql/backends/monet5/sql_user.h b/sql/backends/monet5/sql_user.h
--- a/sql/backends/monet5/sql_user.h
+++ b/sql/backends/monet5/sql_user.h
@@ -14,7 +14,7 @@ extern void monet5_user_init(backend_fun
 extern int monet5_user_set_def_schema(mvc *m, oid user /* mal user id */);
 extern int monet5_user_get_def_schema(mvc *m, int user /* sql user id */, str 
*schema);
 
-extern str db_users_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+// extern str db_users_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 extern str monet5_password_hash(mvc *m, const char *username);
 
 #endif /* _SQL_USER_H_ */
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to