svn commit: samba r2981 - in
branches/SAMBA_4_0/source/lib/tdb/common: .
jra at samba.org
jra at samba.org
Fri Oct 15 00:03:26 GMT 2004
Author: jra
Date: 2004-10-15 00:03:26 +0000 (Fri, 15 Oct 2004)
New Revision: 2981
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/lib/tdb/common&rev=2981&nolog=1
Log:
Fix incorrect locks/unlocks in tdb_lockkeys()/tdb_unlockkeys().
Spotted by Taj Khattra <taj.khattra at gmail.com>.
Jeremy.
Modified:
branches/SAMBA_4_0/source/lib/tdb/common/tdb.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/tdb/common/tdb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/tdb/common/tdb.c 2004-10-15 00:02:55 UTC (rev 2980)
+++ branches/SAMBA_4_0/source/lib/tdb/common/tdb.c 2004-10-15 00:03:26 UTC (rev 2981)
@@ -2037,13 +2037,13 @@
}
/* Finally, lock in order */
for (i = 0; i < number; i++)
- if (tdb_lock(tdb, i, F_WRLCK))
+ if (tdb_lock(tdb, BUCKET(tdb->lockedkeys[i+1]), F_WRLCK))
break;
/* If error, release locks we have... */
if (i < number) {
for ( j = 0; j < i; j++)
- tdb_unlock(tdb, j, F_WRLCK);
+ tdb_unlock(tdb, BUCKET(tdb->lockedkeys[j+1]), F_WRLCK);
SAFE_FREE(tdb->lockedkeys);
return TDB_ERRCODE(TDB_ERR_NOLOCK, -1);
}
@@ -2057,7 +2057,7 @@
if (!tdb->lockedkeys)
return;
for (i = 0; i < tdb->lockedkeys[0]; i++)
- tdb_unlock(tdb, tdb->lockedkeys[i+1], F_WRLCK);
+ tdb_unlock(tdb, BUCKET(tdb->lockedkeys[i+1]), F_WRLCK);
SAFE_FREE(tdb->lockedkeys);
}
More information about the samba-cvs
mailing list