Age | Commit message (Collapse) | Author | Files | Lines |
|
function we must copy the data before modifying.
Jeremy.
(This used to be commit ef4c70f58edf15dc93b22f2c80e15113ee2a46df)
|
|
db. Make this db self-cleaning on first read of entry after
open, and also on smbstatus -b call. Needs more testing when
I get back from Boston but passes valgrind at first look.
Jeremy.
(This used to be commit c66531096325848d1476054df5d53ad05c2ffc83)
|
|
pass with CIFSFS.
Jeremy.
(This used to be commit 89b604285ebe77b7cc2e0d5593117c0c5dc5ed1c)
|
|
#3721.
(This used to be commit ab5a55ec8b27146fccba97f320d649bb19bc6f11)
|
|
case it's in a performace critical path and it *hurts* us.
Go back to plain malloc/free with an explicit destructor
call.
Jeremy.
(This used to be commit 1c99aed563c29e1b3d70939878af747a0660bfec)
|
|
key around while we're using it - saves many calls to
locking_key() (now deleted).
Jeremy.
(This used to be commit 2f8b527dcf4a36fbb933ce79c720c0425de76b4a)
|
|
Jeremy.
(This used to be commit 15f39a4c720e9645f941742310b6c6d7d7fc96d5)
|
|
into 3.0. Also merge the new POSIX lock code - this
is not enabled unless -DDEVELOPER is defined.
This doesn't yet map onto underlying system POSIX
locks. Updates vfs to allow lock queries.
Jeremy.
(This used to be commit 08e52ead03304ff04229e1bfe544ff40e2564fc7)
|
|
this allows us to experiment with ensuring the tdb hash
size for our open files and locking db are appropriately
sized. Make the hash size larger by default (10007 instead
of 1049) and make the locking db hash size the same as the
open file db hash size.
Jeremy.
(This used to be commit e7225f7e813423c3e2a94af6a9d7ce8a1b50a166)
|
|
was confusing.
Jeremy.
(This used to be commit bc1a605a39e58a7dbdcd4d132345e957e3ed9d5e)
|
|
(This used to be commit a39cbaa699d111264c2c9dda49a6e4f42acd3fb8)
|
|
realloc can return NULL in one of two cases - (1) the realloc failed,
(2) realloc succeeded but the new size requested was zero, in which
case this is identical to a free() call.
The error paths dealing with these two cases should be different,
but mostly weren't. Secondly the standard idiom for dealing with
realloc when you know the new size is non-zero is the following :
tmp = realloc(p, size);
if (!tmp) {
SAFE_FREE(p);
return error;
} else {
p = tmp;
}
However, there were *many* *many* places in Samba where we were
using the old (broken) idiom of :
p = realloc(p, size)
if (!p) {
return error;
}
which will leak the memory pointed to by p on realloc fail.
This commit (hopefully) fixes all these cases by moving to
a standard idiom of :
p = SMB_REALLOC(p, size)
if (!p) {
return error;
}
Where if the realloc returns null due to the realloc failing
or size == 0 we *guarentee* that the storage pointed to by p
has been freed. This allows me to remove a lot of code that
was dealing with the standard (more verbose) method that required
a tmp pointer. This is almost always what you want. When a
realloc fails you never usually want the old memory, you
want to free it and get into your error processing asap.
For the 11 remaining cases where we really do need to keep the
old pointer I have invented the new macro SMB_REALLOC_KEEP_OLD_ON_ERROR,
which can be used as follows :
tmp = SMB_REALLOC_KEEP_OLD_ON_ERROR(p, size);
if (!tmp) {
SAFE_FREE(p);
return error;
} else {
p = tmp;
}
SMB_REALLOC_KEEP_OLD_ON_ERROR guarentees never to free the
pointer p, even on size == 0 or realloc fail. All this is
done by a hidden extra argument to Realloc(), BOOL free_old_on_error
which is set appropriately by the SMB_REALLOC and SMB_REALLOC_KEEP_OLD_ON_ERROR
macros (and their array counterparts).
It remains to be seen what this will do to our Coverity bug count :-).
Jeremy.
(This used to be commit 1d710d06a214f3f1740e80e0bffd6aab44aac2b0)
|
|
macro which sets the freed pointer to NULL.
(This used to be commit b65be8874a2efe5a4b167448960a4fcf6bd995e2)
|
|
correct system size. Fixed a bug that was accidentally introduced
by use of uint32 - uid was stored twice, not uid and gid.
Jeremy.
(This used to be commit 89db006997588c6523ce8f2470d67f3136042256)
|
|
Less trouble than I thought plus it didn't need an interface
change (thank goodness !).
Jeremy.
(This used to be commit dbe2572d1c713f46b0d1d0c405f88456c9336297)
|
|
the data struct how big the token is... :-).
Jeremy.
(This used to be commit f259de8b69f94ae8b5f4553180f245234bffd397)
|
|
by saving the UNIX token used to set a delete on close flag,
and using it when doing the delete. libsmbsharemodes.so still
needs updating to cope with this change.
Samba4 torture tests to follow.
Jeremy.
(This used to be commit 23f16cbc2e8cde97c486831e26bcafd4ab4a9654)
|
|
jason qian <jason@infrant.com> was a *fantastic*
help in tracking this down.
Jeremy.
(This used to be commit 9f4a9c70fa232047868e5d8a3f132a2dd6bfee82)
|
|
(I hope). Separate 3.0.21b patch sent to Jerry.
Jeremy.
(This used to be commit 837e7ea7e40cedc6b01e023445feb4a90c4bf8b9)
|
|
Jeremy.
(This used to be commit f93e1e75563679dc07958168b283dfc0eb2de5b0)
|
|
entries. Add paranioa to debug so we know when an
entry is unused.
Jeremy.
(This used to be commit fa5fab313e3728ff49c00ca1097242039506f83e)
|
|
with a NULL service path and fname (we do it all the time internally)
(This used to be commit e1f75ea63780f4a1661f19554d18bbd73b069c1b)
|
|
always linearize into little-endian. Should fix all
Solaris issues with this, plus provide a cleaner base
moving forward for cluster-aware Samba where smbd's
can communicate across different compilers/architectures
(eventually these message will have to go cross-machine).
Jeremy.
(This used to be commit d01824b78576a034428e1cef73868d1169057991)
|
|
longer. Instigated by complaints on the fix for #3303 from
SATOH Fumiyasu <fumiyas@miraclelinux.com>.
Jeremy.
(This used to be commit 855f5f8c32aa530dbad244805a40200824724618)
|
|
Jeremy.
(This used to be commit 123135ed1ddd84cc0a5e8e5ca06a0703d1944e37)
|
|
that have open file handles to allow them to correctly
implement delete on close. There is a further correctness
fix I'm intending to add to this to cope with different share
paths, but not right now...
Jeremy.
(This used to be commit 932e337db8788e75344e1c7cf1ef009d090cb039)
|
|
revving the minor version number for libsmbsharemodes (we
now have a new _ex interface that takes the share path
as well as the filename). Needed for #3303. Some code written
by SATOH Fumiyasu <fumiya@samba.gr.jp> included in the changes
to locking/locking.c. The smbstatus output is a bit of a mess
and needs overhauling...
Jeremy.
(This used to be commit 9d93af713f8520ca506730dd32aa2b994937eaba)
|
|
to be set in local.h. Change from the default (131) to
another prime (1049). Should this be an smb.conf tunable parameter
based on the number of open file descriptors available ?
If so what scaling factor ? More tests to follow.
Jeremy.
(This used to be commit 6a902ec49ffea5d0ca0308d5ff51584cece41043)
|
|
can treat them similarly to file opens (delete on
close, share mode violations etc.). This fixes bug
#3216 I will up the default hash size on the locking
db in a later commit as this means more entries.
Jeremy.
(This used to be commit 1134abbbb3fd8e8b88e1a5817aae106476a4c126)
|
|
* \PIPE\unixinfo
* winbindd's {group,alias}membership new functions
* winbindd's lookupsids() functionality
* swat (trunk changes to be reverted as per discussion with Deryck)
(This used to be commit 939c3cb5d78e3a2236209b296aa8aba8bdce32d3)
|
|
tests on this as it's very late NY time (just wanted to get this work
into the tree). I'll test this over the weekend....
Jerry - in looking at the difference between the two trees there
seem to be some printing/ntprinting.c and registry changes we might
want to examine to try keep in sync.
Jeremy.
(This used to be commit c7fe18761e2c753afbffd3a78abff46472a9b8eb)
|
|
Jeremy.
(This used to be commit 960a5d37d1cfa25e4f7491b175dab68ac9f37c43)
|
|
to get back to me with a backtrace.
Jeremy.
(This used to be commit f2bcfdddc769a2939b03a1a6742fec86712c9097)
|
|
Jeremy.
(This used to be commit 4f431dfc6b57e1609672c4daa53ab5d62613f6d1)
|
|
"Hu, David J" <david.hu@hp.com>
Jeremy.
(This used to be commit ec86ac4b28e99df41d3dd77586ea259500e5dfcd)
|
|
so our numbers don't get out of sync
(This used to be commit 58e307664e02ebf0415f19ed625d2f166d9cb1cc)
|
|
We still have a few strange bugs with 64-bit locking values. I will
get traces.
Jeremy.
(This used to be commit ff4c201d93e1f59ce61e9341f7f94ce92389ed7b)
|
|
(This used to be commit b94db3a75806f1b09a8a0366029812ba2195727c)
|
|
Jeremy.
(This used to be commit 0dd4adeae2042d0ea64398a78b3f48eb0150c133)
|
|
short circuit some is_locked() tests.
Jeremy.
(This used to be commit f4feed8f90be98eaea59bebcc142fd398ffe2a59)
|
|
logic for it. We still pass Samba4 RAW-LOCK test.
Jeremy.
(This used to be commit 596f23051363f8cc8896119b3eca0663a61a38c3)
|
|
allocation
functions so we can funnel through some well known functions. Should help greatly with
malloc checking.
HEAD patch to follow.
Jeremy.
(This used to be commit 620f2e608f70ba92f032720c031283d295c5c06a)
|
|
error return.
Jeremy.
(This used to be commit c6b144654ae544c86f7caa35483e25f0cfe5e904)
|
|
(except for
the cancel lock which I have to add).
Jeremy.
(This used to be commit cf7f89999e0c6becd4617c812400d1e71b9c0a30)
|
|
tdb call, so there is no need to get the chainlock. This reduces the
number of tdb locking calls made on file IO
(This used to be commit 78e904c27b31d7123b521c446247d6ff558c84cc)
|
|
case when I was developing the deferred open case and made it
too tight. It will fire (incorrectly) and panic when a client
does a second open for a file with a different mid (multiplex-id)
request. Doh ! This is a perfectly valid thing for a client to
do (have two pending opens with different mids outstanding on
the same file) and currently when the first pending open expires
with a share violation the paranoia code will panic smbd.
It's a rare condition, but obvious now I've looked at the
code.
Fix for bug #1743.
Jeremy.
(This used to be commit e1bf108ae965ae730c67524164fa36497ea905b5)
|
|
fix. I'm
still doing more testing, but it fixes a behaviour that we've been wrong
on ever since the start of Samba.
Jeremy.
(This used to be commit 894cc6d16296b934c112786eec896846156aee5d)
|
|
tdb_open_log() instead of tdb_open_ex()
(This used to be commit e65564ab4aa1240e84b8d272510aa770cad0ed0e)
|
|
Jeremy.
(This used to be commit 40c77dddc65e18b879d922379d562ffb8be80ab5)
|
|
* remove corrupt tdb and shutdown (only for printing tdbs, connections,
sessionid & locking)
* decrement smbd counter in connections.tdb in smb_panic()
* various Makefile hack to get things to link
'max smbd processes' looks like it might be broken. The counter KEY is not
being set. Will look into that tomorrow.
(This used to be commit 6e22c5da929b6d9a4e32dc704c83112b2ad8fcfd)
|