Changeset: b2db84d7abc6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b2db84d7abc6
Modified Files:
        sql/backends/monet5/sql.c
Branch: remote_auth
Log Message:

Properly release the lock if something fails

(Thanks Perdo)


diffs (34 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -3605,16 +3605,16 @@ sql_rt_credentials_wrap(Client cntxt, Ma
                goto bailout;
        }
 
-       MT_lock_set(&mal_contextLock);
        if ((msg = AUTHgetRemoteTableCredentials(*table, &uris, &unames, 
&hashs)) != MAL_SUCCEED)
                goto bailout;
 
+       MT_lock_set(&mal_contextLock);
        if (BUNappend(urib, uris, FALSE) != GDK_SUCCEED)
-               goto bailout;
+               goto lbailout;
        if (BUNappend(unameb, unames, FALSE) != GDK_SUCCEED)
-               goto bailout;
+               goto lbailout;
        if (BUNappend(hashb, hashs, FALSE) != GDK_SUCCEED)
-               goto bailout;
+               goto lbailout;
        MT_lock_unset(&mal_contextLock);
        BBPkeepref(*uri = urib->batCacheid);
        BBPkeepref(*uname = unameb->batCacheid);
@@ -3622,6 +3622,9 @@ sql_rt_credentials_wrap(Client cntxt, Ma
 
        return MAL_SUCCEED;
 
+  lbailout:
+       MT_lock_unset(&mal_contextLock);
+       msg = createException(SQL, "sql.remote_table_credentials", 
SQLSTATE(HY001) MAL_MALLOC_FAIL);
   bailout:
        if (urib) BBPunfix(urib->batCacheid);
        if (unameb) BBPunfix(unameb->batCacheid);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to