1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

61 Commits

Author SHA1 Message Date
Jeremy Allison
6f58dd5871 Ok - fixed a bug in our levelII oplock code. We need to break a level II on
a byte range lock (write lock only, but Win2k breaks on read lock also so I
do the same) - if you think about why, this is obvious. Also fixed our client
code to do level II oplocks, if requested, and fixed the code where we would
assume the client wanted level II if it advertised itself as being level II
capable - it may not want that.
Jeremy.
(This used to be commit 213cd0b5192307cd4b0026cae94b2f52fb1b0c02)
2000-11-16 00:59:18 +00:00
Luke Leighton
dda54bcd7d added NEGNOWAIT. sent to secure@microsoft.com
(This used to be commit b21179331802aace566671dcff6db22cdf4b3e81)
2000-09-26 05:44:42 +00:00
Andrew Tridgell
b41b1daa36 add -d debuglevel option
(This used to be commit 448f21325f8ff53f3ff5e45c22e07f7164529bc9)
2000-06-15 09:31:34 +00:00
Andrew Tridgell
ec33db96d5 added -L switch to tell smbtorture to use oplocks
(This used to be commit 73033d0803317c7de017cac7f7669f4afb08e7c0)
2000-06-13 09:33:43 +00:00
Andrew Tridgell
a0e1930489 fixed bugs in fdpass tests
(This used to be commit ee4f6335adb2a781eea7e1f6b520d79ea1197427)
2000-05-27 00:29:10 +00:00
Luke Leighton
0fca9817b1 2nd evil simultaneous read-write test. forks. one writer. others
are readers.  writes between 1 and 20 bytes.  reads as much as possible.
compares.  repeat until end of buffer (fixed size: 131072 bytes) reached.
(This used to be commit 26f51a7abbfa9bd9051969dffaebe3cdf9e93c8f)
2000-05-24 07:29:45 +00:00
Andrew Tridgell
aabf523caf use \\ in front of filenames
(This used to be commit a92f8c8620272bcbdd73741b8e87f8d5fac45b49)
2000-05-24 06:01:05 +00:00
Luke Leighton
fb66b3b6e6 torture test:
same cli_state:
open file rw/denynone, open *same* file r/denynone.
write to file (fd1) read from file (fd2).  compare.  repeat.

two cli_states:
open file rw/denynone (cli1), open *same* file r/denynone (cli2).
write to file (fd1) read from file (fd2).  compare.  repeat.
(This used to be commit 0a993f37830938a8d4262c6b7913af502bbf015f)
2000-05-24 05:40:03 +00:00
Jeremy Allison
045469493c rpc_server/srv_lsa.c: Bring into sync with 2.0.x.
rpc_server/srv_pipe_hnd.c: Bring into sync with 2.0.x.
smbd/blocking.c: Improve blocking debug reporting.
utils/torture.c: Added check for NT locking bug.
Jeremy.
(This used to be commit e8ff6d3fb5537c39611a5784bf7216ae812acd27)
2000-05-04 21:57:28 +00:00
Andrew Tridgell
0236a14bac added a test for the NT byte range lock into smbtorture
(This used to be commit 7cfd45cc56e01a20a122c7742dc7e6a4ed59415f)
2000-05-04 09:31:57 +00:00
Jeremy Allison
37a6e44ad8 Added read overlay write lock on same fnum test to locktest2.
Added locktest5 for locking stacks.
Jeremy.
(This used to be commit 65399ae1f058886b8779a01fb35fe3080cc3c145)
2000-05-03 02:24:56 +00:00
Jeremy Allison
36db78feda Fixed subtle unlocking bug when a file is closed. We need to store the
smbpid used when a file was opened in the files_struct. Else we use
the wrong global_smbpid when we are closing the file and trying to
remove the brl locks - this causes the brl locks to be left when the
file is closed as the samba_context check fails.
Jeremy.
(This used to be commit 2746e5602e493e5b022764b4b839eb4d2f14363b)
2000-04-27 22:23:04 +00:00
Andrew Tridgell
65ec80c51d quick hack to get smbtorture working again
(This used to be commit 2d37c1f98f45646546ee76743f9df90b1c0b01ae)
2000-04-27 07:36:06 +00:00
Luke Leighton
3958c39106 added a tcon test: make two tconXs with the same user/pass, open a file
with one of them and try to write to the file with the other.
(This used to be commit f8d3ce0419aee44e4d5efe1257ce4b27f7511ceb)
2000-03-07 21:55:42 +00:00
Andrew Tridgell
6389b81f9d renamed DENY to DENY1
added DENY2 test that checks all 648 deny combinations for the case
of two opens on the same connection
(This used to be commit 01d4c4784dd26bdfc9883907b3170e8b0ea0cd6f)
2000-01-16 12:28:43 +00:00
Andrew Tridgell
1359195c50 casts and defines to make solaris happy
(This used to be commit 77cf152c02b445f4b6e9de393936dd6e54e6f442)
2000-01-14 08:33:20 +00:00
Andrew Tridgell
82af221e4a we now pass all byte range locking tests
the last piece was to use a smb timeout slightly larger than the
locking timeout in bloking locks to prevent a race
(This used to be commit 1b54cb4a33a65e62c2e3189b78ef073869a60c75)
2000-01-14 04:32:57 +00:00
Andrew Tridgell
2afd5d5eb5 some more work on the byte range locking
note the ugly global_smbpid - I hope that won't bethere for long, I
just didn't want to do two lots of major surgery at the one time.
Using global_smbpid avoids the big change of getting rid of our
inbuf/outbuf interface to reply routines. I'll do that once the
locking stuff passes all tests.
(This used to be commit f8bebf91abcaa5bda3ec8701f9242f220da8943a)
2000-01-14 00:50:48 +00:00
Andrew Tridgell
cdb8c99fce greatly expanded the lock4 locking test. we now pass all but one test
- that should be fixed soon.
(This used to be commit 23bb936e1fdeab2ad697ed946c945ef5ce87357d)
2000-01-13 12:11:30 +00:00
Andrew Tridgell
0af00edf67 I'm currently designing a new locking system (using a tdb database!)
that will make us match NT semantics exactly and do away with the
horrible fd multiplexing in smbd.

this is some diag stuff to get me started.

- added the ability to do read or write locks in clientgen.c

- added a LOCK4 test to smbtorture. This produces a report on the server
and its locking capabilities. For example, NT4 gives this:

the same process cannot set overlapping write locks
the same process can set overlapping read locks
a different connection cannot set overlapping write locks
a different connection can set overlapping read locks
a different pid cannot set overlapping write locks
a different pid can set overlapping read locks
the same process can set the same read lock twice
the same process cannot set the same write lock twice
the same process cannot override a read lock with a write lock
the same process can override a write lock with a read lock
a different pid cannot override a write lock with a read lock
the same process cannot coalesce read locks
this server does strict write locking
this server does strict read locking


whereas Samba currently gives this:

the same process can set overlapping write locks
the same process can set overlapping read locks
a different connection cannot set overlapping write locks
a different connection can set overlapping read locks
a different pid can set overlapping write locks
a different pid can set overlapping read locks
the same process can set the same read lock twice
the same process can set the same write lock twice
the same process can override a read lock with a write lock
the same process can override a write lock with a read lock
a different pid can override a write lock with a read lock
the same process can coalesce read locks
this server does strict write locking
this server does strict read locking


win95 gives this - I don't understand why!

the same process cannot set overlapping write locks
the same process cannot set overlapping read locks
a different connection cannot set overlapping write locks
a different connection cannot set overlapping read locks
a different pid cannot set overlapping write locks
a different pid cannot set overlapping read locks
the same process cannot set the same read lock twice
the same process cannot set the same write lock twice
the same process cannot override a read lock with a write lock
the same process cannot override a write lock with a read lock
a different pid cannot override a write lock with a read lock
the same process cannot coalesce read locks
this server does strict write locking
this server does strict read locking
(This used to be commit 49637936b6e9478df248c4ef73d818870c73b597)
2000-01-10 14:41:20 +00:00
Andrew Tridgell
c01663c1a9 extent smbtorture to test with both an exe file and a dat file
(This used to be commit dd2ce575047eb57288bff11669512132fd347fda)
2000-01-08 11:37:45 +00:00
Andrew Tridgell
e8b5cb4515 cli_open() wasn't handling DENY_FCB or O_WRONLY correctly.
After fixing that I needed to use O_RDWR instead of O_WRONLY in
several places to avoid the silly bug in MS servers that doesn't allow
getattrE on a file opened with O_WRONLY
(This used to be commit e21aa4cb088f348139309d29c85c48c8b777cff5)
2000-01-08 10:15:53 +00:00
Andrew Tridgell
6ba295ce0b added a DENY test that tests deny mode handling. It produces a matrix
of 324 lines (6*6*3*3) of all possible deny mode behaviour. This
allows us to compare with NT. We currently don't match :)
(This used to be commit 2071105b439e87cb1c7c3a8c1b2046441eb46270)
2000-01-08 09:49:52 +00:00
Andrew Tridgell
3db52feb1f first pass at updating head branch to be to be the same as the SAMBA_2_0 branch
(This used to be commit 453a822a76780063dff23526c35408866d0c0154)
1999-12-13 13:27:58 +00:00
Luke Leighton
d2d6144253 event log update, netsessenum, netconnenum update.
(This used to be commit 819af560745b0bec7bfb9067dd9d9d6cfabb1555)
1999-08-18 20:33:49 +00:00
Luke Leighton
cae3620b2e safe string error reporting functions (found a potential buffer overflow
of a pstrcpy into an fstring).
(This used to be commit ac0060443de800fec9042b69b299ff2e9128a31c)
1999-06-24 18:58:08 +00:00
Luke Leighton
810d9a1627 variation of random SMBtrans2. random delays in between reconnections
increased.  size of large random buffer decreased.  number of reconnection
attempts increased.
(This used to be commit 980a7b11f3dabce561a0ed02041695451bfeb391)
1999-05-07 20:21:30 +00:00
Luke Leighton
f02321a998 refinement of random ipc$ SMBtrans torture test. send requests, and
don't wait for responses :-)
(This used to be commit c1d65e906054297e42d6d177194d3b9ab16c7e35)
1999-02-11 18:35:26 +00:00
Luke Leighton
8b6b6b57b5 use jeremy's versions of the UNICODE routines.
(This used to be commit c5109ff782be8774db47a92b48ca6335ec8d6065)
1999-02-10 22:30:47 +00:00
Luke Leighton
74d539f557 - group database API. oops and oh dear, the threat has been carried out:
the pre-alpha "domain group" etc parameters have disappeared.

- interactive debug detection

- re-added mem_man (andrew's memory management, detects memory corruption)

- american spellings of "initialise" replaced with english spelling of
  "initialise".

- started on "lookup_name()" and "lookup_sid()" functions.  proper ones.

- moved lots of functions around.  created some modules of commonly used
  code.  e.g the password file locking code, which is used in groupfile.c
  and aliasfile.c and smbpass.c

- moved RID_TYPE_MASK up another bit.  this is really unfortunate, but
  there is no other "fast" way to identify users from groups from aliases.
  i do not believe that this code saves us anything (the multipliers)
  and puts us at a disadvantage (reduces the useable rid space).
  the designers of NT aren't silly: if they can get away with a user-
  interface-speed LsaLookupNames / LsaLookupSids, then so can we.  i
  spoke with isaac at the cifs conference, the only time for example that
  they do a security context check is on file create.  certainly not on
  individual file reads / writes, which would drastically hit their
  performance and ours, too.

- renamed myworkgroup to global_sam_name, amongst other things, when used
  in the rpc code.  there is also a global_member_name, as we are always
  responsible for a SAM database, the scope of which is limited by the role
  of the machine (e.g if a member of a workgroup, your SAM is for _local_
  logins only, and its name is the name of your server.  you even still
  have a SID.  see LsaQueryInfoPolicy, levels 3 and 5).

- updated functionality of groupname.c to be able to cope with names
  like DOMAIN\group and SERVER\alias.  used this code to be able to
  do aliases as well as groups.  this code may actually be better
  off being used in username mapping, too.

- created a connect to serverlist function in clientgen.c and used it
  in password.c

- initialisation in server.c depends on the role of the server.  well,
  it does now.

- rpctorture.  smbtorture.  EXERCISE EXTREME CAUTION.
(This used to be commit 0d21e1e6090b933f396c764af535ca3388a562db)
1998-11-17 16:19:04 +00:00
Andrew Tridgell
fb556e14f3 volker was concerned about unique inode numbers and smbsh. This set of
changes uses the unique index number from a SMB_QUERY_FILE_ALL_INFO to
try to provide inode numbers. If it is 0 then use the hash of the
filename as before.
(This used to be commit 2565ccf9de9d5e80fdb5bcadbc7130faba386d95)
1998-10-24 08:08:05 +00:00
Andrew Tridgell
e4678f5d1d fixed a connection bug in torture test
(This used to be commit 2b892130dfc1938e93e69e490a8a9e9ed57a1971)
1998-10-20 06:46:25 +00:00
Andrew Tridgell
bad4e66489 added maxfid test
(This used to be commit 710027a88a62565fbbe9eb5787e924d019906841)
1998-10-16 23:08:10 +00:00
Luke Leighton
6909350ed9 dce/rpc
(This used to be commit 62fdeef1b79c5c4c9bf0e860881651711bb80b9a)
1998-10-08 23:57:46 +00:00
Andrew Tridgell
a813f38e2d - don't generate 0 params in torture
- handle 0 params in ipc.c
(This used to be commit c0dc8e87f0d56444a8ddff0817a94065ca295847)
1998-10-08 06:49:00 +00:00
Andrew Tridgell
788263ba2f - fixed a bunch of warnings and minor errors
- got smbtorture to compile
- removed %D from some of lukes code - Luke, what is %D? it ain't
  portable anyway
(This used to be commit 91597c12fb593f49b23c7cea5b64dbb89a0428b3)
1998-10-08 06:21:33 +00:00
Andrew Tridgell
4750ce1760 use 1 second resolution calls if possible
(This used to be commit 349469221a84658048790d7567b4fcea43c0b759)
1998-10-08 02:28:21 +00:00
Andrew Tridgell
f651787785 added lseek() support for directories
(This used to be commit 67ca971b0b00b5256b0af2c1c5777c393f9cef0b)
1998-10-03 12:33:34 +00:00
Andrew Tridgell
495eedb14f some changes in smbtorture as a result of clientgen interface changes
for smbwrapper

note that Lukes client changes broke smbtorture. This doesn't fix it,
but at least I didn't break it more than it was.
(This used to be commit 252b52091c11d8a6cc9c70f32671aee865ae7b41)
1998-10-02 12:38:45 +00:00
Jeremy Allison
5f7ee36056 Makefile.in: Fixed bug with continuation line causing proto to fail.
Added $(PROGS) $(SPROGS) as targets for make clean.
acconfig.h: Added HAVE_IRIX_SPECIFIC_CAPABILITIES.
configure.in: Added sys/capability.h header check.
              Added function checks for srandom random srand rand.
              Added HAVE_IRIX_SPECIFIC_CAPABILITIES test.
includes.h: Added #include <sys/capability.h>.
ntdomain.h: Moved struct acct_info into here from smb.h
smb.h: Added KERNEL_OPLOCK_CAPABILITY define.
       Moved enum action_type into rpcclient.h
       Moved struct cli_state into client.h
       Moved struct nt_client_info, struct tar_client_info, struct client_info
             into rpcclient.h
lib/genrand.c: Changed to use sys_random() & friends.
lib/smbrun.c: Lose capabilities after fork.
lib/system.c: Added set_process_capability(), set_inherited_process_capability()
              sys_random(), sys_srandom().
lib/util.c: Added Ander's EFBIG lock check to fcntl_lock for 64 bit access to an
            32 bit mounted NFS filesystem.
nmbd/nmbd.c: Changed to use sys_random() & friends.
nmbd/nmbd_browsesync.c: Changed to use sys_random() & friends.
passdb/ldap.c: Missed one pdb_encode_acct_ctrl call.
passdb/passdb.c: Changed to Ander's code for ' ' characters.
passdb/smbpass.c: Added Ander's code to reset ACB_PWNOTREQ.
script/mkproto.awk: Added 'long' to prototypes.
smbd/chgpasswd.c: Lose capabilities after fork.
smbd/open.c: Do the mmap *after* the kernel oplock.
smbd/oplock.c: Removed stub code from kernel oplock path.
               Added set_process_capability(), set_inherited_process_capability() calls.
smbd/reply.c: Initialize count = 0, offset = 0.
smbd/server.c: Added set_process_capability(), set_inherited_process_capability() calls.
tests/summary.c: Ensure we have RANDOM or RAND.
utils/smbpasswd.c: Added Ander's code to reset ACB_PWNOTREQ.
utils/torture.c: Changed to use sys_random() & friends.

Jeremy.
(This used to be commit e8be306f23963ac00b1a383ebe0cc1421529fb02)
1998-09-25 23:40:49 +00:00
Andrew Tridgell
e9ea36e4d2 tridge the destroyer returns!
prompted by the interpret_security() dead code that Jean-Francois
pointed out I added a make target "finddead" that finds potentially
dead (ie. unused) code. It spat out 304 function names ...

I went through these are deleted many of them, making others static
(finddead also reports functions that are used only in the local
file).

in doing this I have almost certainly deleted some useful code. I may
have even prevented compilation with some compile options. I
apologise. I decided it was better to get rid of this code now and add
back the one or two functions that are needed than to keep all this
baggage.

So, if I have done a bit too much "destroying" then let me know. Keep
the swearing to a minimum :)

One bit I didn't do is the ubibt code. Chris, can you look at that?
Heaps of unused functions there. Can they be made static?
(This used to be commit 2204475c87f3024ea8fd1fbd7385b2def617a46f)
1998-09-05 05:07:05 +00:00
Andrew Tridgell
085c66aea5 some smbtorture hacks (random IPC calls)
(This used to be commit b32a346a1c50ba40224b8165e08e78867be2d376)
1998-08-25 06:42:09 +00:00
Andrew Tridgell
64578c0589 merge from the autoconf2 branch to the main branch
(This used to be commit 3bda7ac417107a7b01d91805ca71c4330657ed21)
1998-07-29 03:08:05 +00:00
Jeremy Allison
f888868f46 This is a security audit change of the main source.
It removed all ocurrences of the following functions :

sprintf
strcpy
strcat

The replacements are slprintf, safe_strcpy and safe_strcat.

It should not be possible to use code in Samba that uses
sprintf, strcpy or strcat, only the safe_equivalents.

Once Andrew has fixed the slprintf implementation then
this code will be moved back to the 1.9.18 code stream.

Jeremy.
(This used to be commit 2d774454005f0b54e5684cf618da7060594dfcbb)
1998-05-12 00:55:32 +00:00
Jeremy Allison
f9a96f060b clientgen.c: Changes 'cli_xxx_' calls to use the following
regularized parameter syntax:

   setup, setup_count, max_setup_count,
   params, params_count, max_params_count,
   data, data_count, max_data_count,

(and if a reply is needed)

   *reply_params, *reply_data_len
   *reply_data, *reply_data_len

This allows the pointers and the lengths
that relate to these pointers to be next
to each other in the parameter list. This
makes seeing what you are passing to these
functions much easier to see.

Getting ready for adding the lib/rpc/client
functions needed to do security=domain.

torture.c: Fixed it so it uses / rather than \\
internally for the //machine/share syntax.

Jeremy.
(This used to be commit 38350ea8b949d0908497490898ff04df7591ccac)
1998-04-17 22:44:01 +00:00
Andrew Tridgell
fc9065b360 some hacks to the torture code
(This used to be commit 02786747ee6774f617d95b08a5c5912bf86e7586)
1998-04-12 02:53:17 +00:00
Jeremy Allison
55f400bd84 This is *not* a big change (although it looks like one).
This is merely updating the Copyright statements from 1997 to 1998.
It's a once a year thing :-).
NO OTHER CHANGES WERE MADE.
Jeremy.
(This used to be commit b9c16977231efb274e08856f7f3f4408dad6d96c)
1998-01-22 13:27:43 +00:00
Andrew Tridgell
ebe7c7a173 added cli_rmdir and cli_mkdir
added test in smbtorture for the server updating the directory modify
time when a file is added to a directory

cleanup in smbtorture so no garbage files are left on the server
(This used to be commit 3a5e07f1e994396853e6340e8ef3f4d12bb0243e)
1997-11-24 13:44:52 +00:00
Andrew Tridgell
931d0150b0 added a SMB_QUERY_FILE_ALL_INFO test into smbtorture
W95 doesn't seem to support this call.
(This used to be commit 162947c6e672580216c6223a44d25b874f0487ab)
1997-11-23 07:26:42 +00:00
Andrew Tridgell
c16d132bf9 added some QPATHINFO and QFILEINFO tests into smbtorture.
This tests for things like midnight access times, sticky create times
and word reversed INFO_STANDARD returns
(This used to be commit 89141de14edf9e46ab279d2a74a9b026716a0ba8)
1997-11-23 05:55:44 +00:00