1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-22 07:17:05 +03:00

1015 Commits

Author SHA1 Message Date
Jeremy Allison
876f2deb3a r14986: Fix OS/2 directory delete bug found by kukks.
(Thanks a lot for all your hard work on this).
We were caching the results of *all* directory
scans, not just the results that match the
client wildcard. This actually made no sense,
as only matches on the client wildcard can be
returned to the client and so might need to
be searched for in the cache. This fixes the
directory cache to only cache entries that we
return to the client.
Jeremy.
(This used to be commit c88af597d042390ff11b26fe802b0b10d0faa6ce)
2007-10-10 11:15:55 -05:00
Jeremy Allison
e6676a9a69 r14387: Try and fix the coverity issues (#53, #54) with negative
sink by ensuring all uses of rpcstr_push are consistent
with a size_t dest size arg.
Jeremy.
(This used to be commit f65d7afe1977d9d85046732842f9643716c15088)
2007-10-10 11:15:27 -05:00
Jeremy Allison
894358a8f3 r13915: Fixed a very interesting class of realloc() bugs found by Coverity.
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)
2007-10-10 11:10:59 -05:00
Gerald Carter
04f635f8fc r13675: * patch from Bjoern JACKE <samba@j3e.de> to remove the
artificial RO bit on directories in user profiles when
  profile acls = yes.
(This used to be commit b698e83a82f96db4a4a6ffa4b61af50c943deff0)
2007-10-10 11:10:22 -05:00
Jeremy Allison
a4d755dacc r13563: Fix bug #3526 found and diagnosed by corinna@vinschen.de.
trans2findfirst recognises two info levels *not* recognised
by trans2findnext. Add them. Needed for 3.0.21c.
Jeremy.
(This used to be commit bcb87271d60acd4efe666dd061ea2c09b72fd497)
2007-10-10 11:10:14 -05:00
Jeremy Allison
d14af63e6a r13293: Rather a big patch I'm afraid, but this should fix bug #3347
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)
2007-10-10 11:06:21 -05:00
Jeremy Allison
3317484799 r12877: Stop passing structs around in smb messages, instead
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)
2007-10-10 11:06:05 -05:00
Jeremy Allison
e53642a131 r12376: Second patch from Martin Koeppe <mkoeppe@gmx.de>
for #3287.
Jeremy.
(This used to be commit 8680eebbba220eea257c9ea093d5a463afe7bd94)
2007-10-10 11:05:54 -05:00
Jeremy Allison
91efc453ab r12250: Patch from Martin Koeppe <mkoeppe@gmx.de> for #3287
to make the dev/inode numbers match what SFU expects.
If we're using 8 byte inodes we'll lose the top 4 bytes
and replace them with a dev_t instead, but this seem
reasonable to ensure uniqueness.
Jeremy.
(This used to be commit e53574d0b43e5525029c89e56331701399013d91)
2007-10-10 11:05:51 -05:00
Jeremy Allison
7d2771e758 r12203: Add the share path into the sharemode db. This involves
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)
2007-10-10 11:05:49 -05:00
Jeremy Allison
6d5757395a r11511: A classic "friday night check-in" :-). This moves much
of the Samba4 timezone handling code back into Samba3.
Gets rid of "kludge-gmt" and removes the effectiveness
of the parameter "time offset" (I can add this back
in very easily if needed) - it's no longer being
looked at. I'm hoping this will fix the problems people
have been having with DST transitions. I'll start comprehensive
testing tomorrow, but for now all modifications are done.
Splits time get/set functions into srv_XXX and cli_XXX
as they need to look at different timezone offsets.
Get rid of much of the "efficiency" cruft that was
added to Samba back in the day when the C library
timezone handling functions were slow.
Jeremy.
(This used to be commit 414303bc0272f207046b471a0364fa296b67c1f8)
2007-10-10 11:05:19 -05:00
Jeremy Allison
86909281c8 r11428: Fix bug #3192 by actually hooking up the dfree caching
function. Oops.
Jeremy.
(This used to be commit 7edb26e7657fc01710abe563b941779749409ef2)
2007-10-10 11:05:15 -05:00
Jeremy Allison
6baec64a73 r11420: Fix issue pointed out by Dina Fine <dina@exanet.com>. We can
only tell at parse time from the wire if an incoming name
has wildcards or not. If it's a mangled name and we demangle
the demangled name may contain wildcard characters. Ensure
these are ignored.
Jeremy.
(This used to be commit 4cd8e2a96b98ff711905e8c6f416b22440c16062)
2007-10-10 11:05:15 -05:00
Jeremy Allison
3a5c37bfd1 r11389: Attempt to fix bug #3212 - ignore bogus OS/2 EA set values on
trans2_mkdir/trans2_open/trans2_setfilepathingo.
Jeremy.
(This used to be commit 71c037dfbb0b51e750f2e14533b03d9932778cb0)
2007-10-10 11:05:14 -05:00
Jeremy Allison
a5b339c799 r11232: Added ab's POSIX statvfs vfs call. Sorry for the delay ab.
Jeremy.
(This used to be commit af8545806770a7530eecc184bdd230ca14999884)
2007-10-10 11:05:08 -05:00
Gerald Carter
111f8e5995 r10921: BUG 3070: fix crash bug in qfsinfo when retrieving quota info
(This used to be commit 1599fc38ab2f2beb5d1a240941b879603ce27ae6)
2007-10-10 11:04:56 -05:00
Gerald Carter
54abd2aa66 r10656: BIG merge from trunk. Features not copied over
* \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)
2007-10-10 11:04:48 -05:00
Jeremy Allison
f1b1adc136 r10182: Starting to stamp out warnings on a 64-bit box.
More to follow.
Jeremy.
(This used to be commit aa882646854325aa201b66d0ba27026946ce8dcb)
2007-10-10 11:03:35 -05:00
Jeremy Allison
e14c6d62d8 r9246: Patch from Marcel samba.10.maazl@spamgourmet.com for OS/2 trans2 open
reply bugs.
Jeremy.
(This used to be commit 3ec6fc8d1e34c344f59b8c1a22f3bab556e7fa07)
2007-10-10 11:00:28 -05:00
Jeremy Allison
abb81cfe26 r8959: Make msdfs code talloc based. Fix leaks.
Jeremy.
(This used to be commit 076023df8ea7c0f03baf8102e55d347e05542c7b)
2007-10-10 11:00:22 -05:00
Jeremy Allison
a747f1b87a r8552: Warning fix from jason@ncac.gwu.edu.
Jeremy.
(This used to be commit 8558001b38786b7ff16d90d80d183b0277d74e16)
2007-10-10 11:00:08 -05:00
Jeremy Allison
af8a691db1 r8219: Merge the new open code from HEAD to 3.0. Haven't yet run the torture
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)
2007-10-10 10:58:18 -05:00
Jeremy Allison
f2f55d703d r7963: Add aio support to 3.0.
Jeremy.
(This used to be commit 1de27da47051af08790317f5b48b02719d6b9934)
2007-10-10 10:58:05 -05:00
Jeremy Allison
ff7e5c2673 r7893: Add in the extra parameters to opendir() to fix the large directory/insane app
problem. Rev vfs version. Doesn't change the normal codepath.
Jeremy.
(This used to be commit 0f03a6bdcdbdf60da81e0aeffa84ac6e48fc6a04)
2007-10-10 10:58:02 -05:00
Jeremy Allison
7e509e9b99 r7842: With the patch I sent Steve yesterday this gives us complete POSIX pathnames.
ie. files containing : and \ can be accessed from Linux.
Jeremy.
(This used to be commit e9b8d23d6138d909a65ea70b2e801881e8333b38)
2007-10-10 10:57:59 -05:00
Jeremy Allison
e9d3cc656f r7821: Don't check permissions for setting POSIX pathname request.
Jeremy.
(This used to be commit 06b40024f3784778a81ae7c69881a516d183a1c3)
2007-10-10 10:57:22 -05:00
Jeremy Allison
bf28978a70 r7798: CIFSFS client assumes wcnt == 10 for successful trans2 reply.
Jeremy.
(This used to be commit aea58e6bb60565430aec69598c47b2a8f4667e89)
2007-10-10 10:57:21 -05:00
Jeremy Allison
ea41eedc20 r7796: Prepare for client setting capabilities to select posix pathnames on
the wire. Jerry do not merge this please. New SMB_SET_FS_INFO - level
0x200 as was discussed on the mailing list.
Jeremy.
(This used to be commit 55029b1a0c9ae5b941eecd699dd905ea3d42b99c)
2007-10-10 10:57:21 -05:00
Jeremy Allison
66bb4f03c3 r7412: Now we're not memset'ing ensure we're valgrind clean.
Jeremy.
(This used to be commit 0d303ab2f30f6047fc3f2f6fc4916e93704959d2)
2007-10-10 10:57:08 -05:00
Jeremy Allison
c7bc8c52ca r7191: Squeezing out more unnecessary memset's gets us up 20% over older code :-).
Getting medieval on our ass about memset....
Jeremy.
(This used to be commit d0c804bc353afa1712de3885071712af1daffb11)
2007-10-10 10:57:04 -05:00
Jeremy Allison
6b036a8ad7 r7190: I *love* valgrind/cachegrind.....
By removing unneeded memsets in qfilepathinfo I just improved our netbench performance
by *********15%**********. Check it out :-).
Jeremy.
(This used to be commit c20a7b10b6a82db6df349fa5e6f2fcf3eeefec58)
2007-10-10 10:57:04 -05:00
Jeremy Allison
8f8ff6870c r6979: Tidyups.
Jeremy.
(This used to be commit 619d0aeebba66624ea0f5c7cff1c637738275b84)
2007-10-10 10:56:59 -05:00
Jeremy Allison
1d37a6267e r6715: We don't need to wrap the setfsinfo call in HAVE_QUOTA
as they'll just return ENOSYS if we don't. Add new CAP for
POSIX pathnames, prepare to allow FSINFO set for client POSIX
caps.
Jeremy.
(This used to be commit 4d99b57aedba8431ef5827d1e75413a10b35e1ce)
2007-10-10 10:56:53 -05:00
Jeremy Allison
5622d96cd6 r6631: More typo's. Sorry.
Jeremy.
(This used to be commit 2673ccd19f194d1f7756a154afe4200e386ca1b3)
2007-10-10 10:56:48 -05:00
Jeremy Allison
02e3717ee9 r6625: Remove another global variable left over from a long time ago (magic char).
Jeremy.
(This used to be commit b1bfa9cb37deb22d1d08bc60ba44d61334f6446e)
2007-10-10 10:56:47 -05:00
Jeremy Allison
c044df57dd r6302: OS/2 fix from Marcel Müller <mueller@maazl.de>. Don't check for mangled names
if mangled names is off.
Jeremy.
(This used to be commit b2330c38881baceaafe1ef6b7ce00d1b5cd8d5c7)
2007-10-10 10:56:35 -05:00
Jeremy Allison
e1ff2af9dc r6297: Fix bug in our trans2 secondary processing. We need to pass in the
trans2 call info from the primary trans2 packet as it isn't present
in secondary transs packets. We only need to do this for functions that
satisfy more than one case in the switch statement. Found by Marcel Müller <mueller@maazl.de>.
Jeremy.
(This used to be commit 62edc3d5dc68fbfe6cd77c588791453e29274dd9)
2007-10-10 10:56:35 -05:00
Jeremy Allison
0003238873 r6269: With help from Marcel Müller <mueller@maazl.de> in tracking down the bug,
fix trans2 and nttrans secondary packet processing. We were being too strict checking
the incoming packet (by 1 byte).
Jeremy.
(This used to be commit 3eea1ff4b7428325c7f304bcac61d6297209a4b8)
2007-10-10 10:56:34 -05:00
Jeremy Allison
9fda3ecda4 r6261: Tidyup message str printf. Ensure tvs struct is zeroed.
Jeremy.
(This used to be commit 6c9f227ef400f32def85268f411691b569d29889)
2007-10-10 10:56:33 -05:00
Jeremy Allison
def41233b4 r6258: Fix found by OS/2 set_ea call. When setting specific info remember to terminate
once we've done that and not "break" into the generic file metadata set code.
Jeremy.
(This used to be commit f1e12be9ed0ca0077bac8e5f32051758e1d84ad7)
2007-10-10 10:56:33 -05:00
Gerald Carter
1253a174f3 r6242: after talking to jeremy, we can actually consolidate
the 2 BOOL flags in dfs_redirect() down to one since
they both are used in essentially the same context
(from what we can tell).

Tested Win98SE, WinXP sp 1 & 2, Win2k3 sp1, and WIn2k Sp4.
All dfs operations still seem to work.
(This used to be commit 59ffacf59c98f2f8277d76ec22712e438fd40618)
2007-10-10 10:56:31 -05:00
Gerald Carter
b751f95a25 r6237: fix my breakage of WinXP sp2 msdfs support.
We did need the special case for RESOLVE_DFSPATH
in the findfirst() code.

Jeremy, please verify I haven't broken the allow_wcard
code you added to resolve_dfs_path()
(This used to be commit 29983398e2f7f1dc609d4d981e20f594918243bb)
2007-10-10 10:56:31 -05:00
Herb Lewis
978ca84860 r6225: get rid of warnings from my compiler about nested externs
(This used to be commit efea76ac71412f8622cd233912309e91b9ea52da)
2007-10-10 10:56:30 -05:00
Jeremy Allison
77fa234ffc r6203: Fix attribute return on creating a directory with nttrans_create.
Fix strange allocation semantics of openX.
Jeremy.
(This used to be commit da5a8b539d39d2765de22c3e55e9f284992ff966)
2007-10-10 10:56:28 -05:00
Jeremy Allison
db69f6fae9 r6199: Only do the strange DOS error for openX, not trans2open.
Jeremy.
(This used to be commit 65970dfc5b8f174fe29201789d6ddcf8802ad48c)
2007-10-10 10:56:28 -05:00
Jeremy Allison
1045c78624 r6174: Fixup T2 open call - we were returning 2 bytes short.
Jeremy.
(This used to be commit 0c7de7615bf0edbb36a3afee445db13a71e26d2e)
2007-10-10 10:56:27 -05:00
Jeremy Allison
0557c6cba2 r6172: Tidy up error processing significantly. Remove unix_ERR_XXX global nastyness.
Jeremy.
(This used to be commit d3379fe61bb934082b51a37adac232a96bafcf46)
2007-10-10 10:56:27 -05:00
Jeremy Allison
1da65dc29e r6163: Well I never, all this time the t2open code was incorrectly decting
oplock requests and no one noticed. Hmmm. Don't think this is a commonly
used codepath :-).
Jeremy.
(This used to be commit 75a0c11de4b7baf693e5c62e690e4bb26554f8e2)
2007-10-10 10:56:26 -05:00
Jeremy Allison
b76112f211 r6146: Added OS/2 EA support in trans2_open and trans2_mkdir. Fixed in nttrans_create.
Jeremy.
(This used to be commit 989fcb4c084c63f1e3b114af68ef5bc0a2fbc09e)
2007-10-10 10:56:24 -05:00
Jeremy Allison
b7c6e71b26 r6141: Fix OS/2 EA's for NTcreate. OpenX and mkdir to follow.
Jeremy.
(This used to be commit 106f91ff65acd23a7dda4d0ec89ae41ecb28153e)
2007-10-10 10:56:24 -05:00