Changeset: 07b43734e12d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/07b43734e12d
Modified Files:
        sql/backends/monet5/sql_user.c
Branch: Sep2022
Log Message:

Variable can be freed earlier.


diffs (57 lines):

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
@@ -423,18 +423,17 @@ monet5_create_user(ptr _mvc, str user, s
                pwd = passwd;
        }
 
-       if ((err = AUTHGeneratePasswordHash(&hash, pwd)) != MAL_SUCCEED) {
+       err = AUTHGeneratePasswordHash(&hash, pwd);
+       if (!enc)
+               free(pwd);
+       if (err != MAL_SUCCEED) {
                GDKfree(schema_buf);
-               if (!enc)
-                       free(pwd);
                throw(MAL, "sql.create_user", SQLSTATE(42000) "create backend 
hash failure");
        }
 
        user_id = store_next_oid(m->session->tr->store);
        sqlid default_role_id = role_id > 0 ? role_id : user_id;
        if ((log_res = store->table_api.table_insert(m->session->tr, 
db_user_info, &user, &fullname, &schema_id, &schema_path, &max_memory, 
&max_workers, &optimizer, &default_role_id, &hash))) {
-               if (!enc)
-                       free(pwd);
                GDKfree(schema_buf);
                GDKfree(hash);
                throw(SQL, "sql.create_user", SQLSTATE(42000) "Create user 
failed%s", log_res == LOG_CONFLICT ? " due to conflict with another 
transaction" : "");
@@ -444,8 +443,6 @@ monet5_create_user(ptr _mvc, str user, s
        GDKfree(hash);
 
        if ((log_res = store->table_api.table_insert(m->session->tr, auths, 
&user_id, &user, &grantorid))) {
-               if (!enc)
-                       free(pwd);
                throw(SQL, "sql.create_user", SQLSTATE(42000) "Create user 
failed%s", log_res == LOG_CONFLICT ? " due to conflict with another 
transaction" : "");
        }
 
@@ -453,21 +450,15 @@ monet5_create_user(ptr _mvc, str user, s
                // update schema authorization to be default_role_id
                switch (sql_trans_change_schema_authorization(m->session->tr, 
schema_id, default_role_id)) {
                        case -1:
-                               if (!enc)
-                                       free(pwd);
                                throw(SQL,"sql.create_user",SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
                        case -2:
                        case -3:
-                               if (!enc)
-                                       free(pwd);
                                throw(SQL,"sql.create_user",SQLSTATE(42000) 
"Update schema authorization failed due to transaction conflict");
                        default:
                                break;
                }
 
        }
-       if (!enc)
-               free(pwd);
        return ret;
 }
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to