1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-07 01:58:28 +03:00

679 Commits

Author SHA1 Message Date
Andrew Tridgell
f1867dcad6 return NULL for a zero size memdup
(This used to be commit 9416b58b9c2ff898cdae2cb81ab1e150ef9f0e89)
2000-04-22 08:29:41 +00:00
Jeremy Allison
6259f51dd9 This is a *big* checkin that may break some things, but implements the
new open mechanism Andrew & I discussed.

config.sub:
configure: Included the QNX patch.

include/vfs.h:
smbd/vfs-wrap.c:
smbd/vfs.c: Added ftruncate vfs call (needed).

Note that we will also need locking calls in the vfs (to be added).

lib/util_unistr.c:
nmbd/nmbd_processlogon.c: Fix for NT domain logons causing nmbd to core dump.
                          Also fix for sidsize DOS bug.

locking/locking.c: Check value of ret before using it for memdup.

printing/printing.c: Convert print_fsp_open to return an allocated fsp.

rpc_server/srv_lsa.c: Fix for NT domain logons.

I have removed all use of lp_share_modes() from the code (although I
left the parameter in the table for backwards compatibility). It no longer makes
sense for this to exist.

smbd/close.c: Removed lp_share_modes().
smbd/fileio.c: Fixed parameters to unlock_share_entry call in panic code.
smbd/files.c: Correctly set the unix_ERR_code to ERRnofids on fsp allocation fail.

smbd/nttrans.c:
smbd/reply.c:
smbd/trans2.c: Changed all occurrences of open_file_shared/open_directory/
               open_file_stat to return an fsp from the call.

smbd/open.c: Changed all occurrences of open_file_shared/open_directory/
             open_file_stat to return an fsp from the call.

In addition I have fixed a long standing race condition in the deny mode
processing w.r.t. two smbd's creating a file. Andrew, please note that
your original idea of using open with O_EXCL in this case would not work
(I went over the races very carefully) and so we must re-check deny modes
*after* the open() call returns. This is because there is a race between
the open with O_EXCL and the lock of the share mode entry. Imagine the
case where the first smbd does the open with O_EXCL and a deny mode of DENY_ALL,
but is pre-empted before it locks the share modes and creates the deny
mode entry for DENY_ALL. A second smbd could then come in with O_RDONLY
and a deny mode of DENY_NONE and the two opens would be allowed.

The *only* way to fix this race is to lock the share modes after the
open and then do the deny mode checks *after* this lock in the case
where the file did not originally exist.

This code will need extensive testing but seems to initially work.

Jeremy.
(This used to be commit ab0ecc39d688f16b9692fe90b991f0b89287070a)
2000-04-22 00:33:16 +00:00
Andrew Tridgell
f074d6ef57 split fsusage() into a separate module (to fix linking problems with
spoolssd in tng)
(This used to be commit e2eacdd74c369fbbcd118148149321e36f3d0010)
2000-04-19 08:23:13 +00:00
Andrew Tridgell
612682354f - got rid of the "passive" option
- cleaned up the standard_sub_*() calls a lot
(This used to be commit 2c2d95d77d3667eaa9252506a82b9054b0d0e01c)
2000-04-19 04:01:16 +00:00
Andrew Tridgell
75731f8c23 fixed some crash bugs in the nt forms parsing
(This used to be commit e505a6ddf3df37ca485cae117c53fa96d736f897)
2000-04-18 02:17:46 +00:00
Andrew Tridgell
d99bec7170 got rid of some more old configure tests and includes
(This used to be commit f137648504362479143d50477fa38ebf7147968b)
2000-04-17 06:11:08 +00:00
Andrew Tridgell
bb28f06eae moved standard_sub() and friends into a separate module
(This used to be commit 030ec8e71f9ef533b5d6aece01e67d357e23b7d2)
2000-04-17 04:46:10 +00:00
Andrew Tridgell
8d7e498db1 converted a couple more functions to use a fd instead of a FILE*
added a new utility fn file_lines_slashcont() which is used to handle
files that treat a \ followed by a newline as a blank
(This used to be commit 384ecd9d66ccd31ee85000c0ca55d413d8f2cc53)
2000-04-16 11:17:19 +00:00
Andrew Tridgell
19f946ba6f converted a bunch more functions to use a fd instead of a FILE*
to support some of this I added the following functions in util_file.c

file_lines_pload : load lines from a pipe
file_pload : load a pipe into memory
(This used to be commit a09470817c5b21dba42f9ef4ce5e8b768a254c0b)
2000-04-16 11:00:21 +00:00
Andrew Tridgell
37c0312def added fdprintf()
this is like fprintf() but operates on a file descriptor

combined with file_load_lines() this makes it really easy to get rid
of the use of fopen() in Samba.
(This used to be commit bd5cd502bf52164b95d7bfc026189e04988171db)
2000-04-16 09:40:02 +00:00
Andrew Tridgell
95ddbb8aaf the new file_lines_load() and file_lines_free() routines. Very useful!
------------
The following series of commits are for the new tdb based printing
backend. This completely replaces our old printing backend.

Major changes include:

- all print ops are now done in printing/*.c rather than scattered all
  over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
  parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better

I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit be1e98b3f7a6007d2c9ac8e079724cb264e0dd3a)
2000-04-16 06:19:11 +00:00
Andrew Tridgell
f77d9a2cca added standard_sub_snum() function for modules that don't have
a connection structure
(This used to be commit f35fe3b4a175161128341fe30a61437c560180d1)
2000-04-15 08:07:57 +00:00
Andrew Tridgell
b8c51212db use macros for table boundaries
(This used to be commit a82a5acff2ad2120f5480f0cb08550e95d80c59e)
2000-04-15 08:07:11 +00:00
Andrew Tridgell
4b7850663e a quick hack to reduce the size of the unicode map table headers from
3MB to 250k.

I split the table into 3 sections, after noticing that 5/6 of the
table was empty.
(This used to be commit c1496736bbdb7f6bf1eb43a54f883e5f41a4d39e)
2000-04-15 07:14:40 +00:00
Andrew Tridgell
a4e537322f use open() not fopen() on codepage files.
in general we need to get rid of all uses of fopen(). The hard one
will be the debug code and dbf.
(This used to be commit 3992a5169c0b3805c38729c3856c41b1b2527765)
2000-04-15 02:52:51 +00:00
Jeremy Allison
ce5e230952 Log file check patch from Mattias Gronlund <Mattias.Gronlund@sa.erisoft.se>.
Modified to do checks in timeout processing not in main loop. This (IMHO)
is the correct place as (a) we are already root, and (b) it is guarenteed
to be called every 200 smb requests.
Jeremy.
(This used to be commit c3794fd29fdc4e5a0dbd725cdc24fe210934caf2)
2000-04-15 00:31:56 +00:00
Andrew Tridgell
e52431f70a use interpret_addr2() instead of inet_aton()
(This used to be commit f65c6ec6db8e05685c719e23d7b06b3452fbbb4e)
2000-04-14 04:34:08 +00:00
Jeremy Allison
a018d6b326 Removed "ole locking compat" parameter (no longer used).
We now get/set/check POSIX locks, but I still need to code up the
close fd braindamage...
Jeremy.
(This used to be commit 3de058bd43976853b0ed2b6b5529e2a3a08909eb)
2000-04-12 23:01:11 +00:00
Jeremy Allison
e1083ea7df Roll back to using static MACHINE.SID after consultation with Andrew. This
code will be removed soon and a SID auto-generated from (probably) primary
hostname and never stored in a file will replace it.
Jeremy.
(This used to be commit fbfe94a799cda7f728bc920d4f0655d4f537e3b6)
2000-04-12 00:37:08 +00:00
Jeremy Allison
f6be38cae2 include/byteorder.h: ALIGN4/ALIGN2 macros.
include/includes.h: Added SMB_BIG_UINT_BITS.
lib/util.c: Removed align2/align4 - use macros.
libsmb/namequery.c: Use ALIGN2.
locking/locking.c: Replace do_lock, do_unlock, args with SMB_BIG_UINT, not SMB_OFF_T.
                   Needed to move to hiding POSIX locks at a lower layer.
nmbd/nmbd_processlogon.c: Use ALIGN2/ALIGN4 macros.
smbd/blocking.c: Replace do_lock, do_unlock, args with SMB_BIG_UINT, not SMB_OFF_T.
smbd/reply.c: Replace do_lock, do_unlock, args with SMB_BIG_UINT, not SMB_OFF_T.
Jeremy.
(This used to be commit 491eea8a20bf80d426625479326211dc975857a6)
2000-04-11 19:44:54 +00:00
Andrew Tridgell
17ea0bd3b5 add an align4() function
(This used to be commit 7969f4dccbc5a506ef58b9270a08f8f70d9006f7)
2000-04-11 14:24:48 +00:00
Andrew Tridgell
2fa922611b finally got sick of the "extern int Client" code and the stupid
assumption that we have one socket everywhere

while doing so I discovered a few bugs!

1) the clientgen session retarget code if used from smbd or nmbd would
cause a crash as it called close_sockets() which closed our main
socket! fixed by removing close_sockets() completely - it is unnecessary

2) the caching in client_addr() and client_name() was bogus - it could
easily get fooled and give the wrong result. fixed.

3) the retarget could could recurse, allowing an easy denial of
service attack on nmbd. fixed.
(This used to be commit 5937ab14d222696e40a3fc6f0e6a536f2d7305d3)
2000-04-11 13:55:53 +00:00
Andrew Tridgell
03630a9aa9 added a cheap and nasty skip_unibuf() fn to allow easier merging from
TNG

out unicode string handling functions need a lot of work
(This used to be commit 707401fc1e697362cdaadcfaac4edc964b80b1a0)
2000-04-11 13:47:17 +00:00
Andrew Tridgell
18bc76a0c6 changed the definition of dos_PutUniCode
the previous definition could result is us overflowing a buffer. The
null termination was always added yet the size returned did not
include the null termination.

the new function takes a BOOL null_terminate, and always returns the
total number of bytes consumed by the string.
(This used to be commit 426c90433396a95033eefcc4af97603abc934221)
2000-03-27 12:38:45 +00:00
Luke Leighton
4acd40ee00 moved nmblib-specific code from util.c to nmblib.c.
(This used to be commit 1b9077a1d5295bc8522b83ebed2d41d5dbd28a27)
2000-03-27 01:33:43 +00:00
Jeremy Allison
6814d0f456 Correctly convert from little-endian UNICODE to dos_codepage when doing
secure file create.
Jeremy.
(This used to be commit 90134dd13721f60d4fb05ce9434b65e95ff09629)
2000-03-22 20:39:31 +00:00
Jeremy Allison
8f1620125d acconfig.h configure configure.in: Added check for UT_SYSLEN for utmp code.
include/byteorder.h: Added alignment macros.
include/nameserv.h: Added defines for msg_type field options - from rfc1002.
lib/time.c: Typo fix.
lib/util_unistr.c: Updates from UNICODE branch.
printing/nt_printing.c: bzero -> memset.
smbd/connection.c: Added check for UT_SYSLEN for utmp code.

Other fixes : Rollback of unapproved commit from Luke.
Please *ask* next time before doing large changes to HEAD.

Jeremy.
(This used to be commit f02999dbf7971b4ea05050d7206205d7737a78b2)
2000-03-22 19:03:12 +00:00
Jeremy Allison
e601c0259e Fixes to add "paranoid" option to popen. Checks some basic things.
Jeremy
(This used to be commit 3b8cbb10de322fd7a1063fb5b681790b10d24ab0)
2000-03-16 20:55:37 +00:00
Jeremy Allison
321091ad20 Fix from NAKAJI Hiroyuki for a trailing '\n\ in asctime.
Jeremy.
(This used to be commit 87df97c9365a185e4ea6bac7b832b8cf38144624)
2000-03-15 18:00:30 +00:00
Jeremy Allison
5e22394654 Fixups for compiles with gcc flags -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual
Partially implemented rpc daemon redirect (needs more work).
Jeremy.
(This used to be commit a462191698fa589ceac4afd14c652adf699eccad)
2000-03-10 19:50:03 +00:00
Jean-François Micouleau
78d7ba5ca0 changed prs_unistr to parse empty and non-empty strings the same way.
fixed typo in SPOOLSS_SYNT
some cleanup of unused functions
wrote make_spoolss_enumprinter and make_spoolss_openprinterex for
rpcclient as I'm trying to keep in sync the parsing code between HEAD and
TNG.

Will commit changes to TNG after lunch.

	J.F.
(This used to be commit 025cdb345f6de287a41d4449b2662dbc5e762bf2)
2000-03-06 11:13:40 +00:00
Jeremy Allison
9db96b7646 lib/system.c: Fixed gcc warnings.
nmbd/nmbd_processlogon.c: Use "True" and "False" instead of 1 and 0.
Others - preparing for multiple pdu write code.
Jeremy.
(This used to be commit 9f879ec396230deba34fbe5e82d8a65f92137c54)
2000-02-23 02:02:33 +00:00
Jeremy Allison
ed95d8ed4f Fix for crash bug from Paul Tyler <pct@ansto.gov.au>.
Jeremy.
(This used to be commit 89aa4d8ca9cc9e8e6dd4566076c0cace8b82d838)
2000-02-21 18:47:21 +00:00
Jeremy Allison
1a27ef121a Fixes for Eastern Europe code page.
Jeremy.
(This used to be commit 0ec82d661a27a02322e5c8da20a18f33bfb24a3e)
2000-02-18 03:11:22 +00:00
Jeremy Allison
8b45838ffc Added support for SO_REUSEPORT for systems that have it.
Jeremy.
(This used to be commit 377515cf9624720362c0b76969b9381d9972a13f)
2000-02-16 22:48:19 +00:00
Jeremy Allison
3cf31a194f Added replacement functions sys_popen and sys_pclose. These are based
on the glibc source code and are safer than the traditional popen as
they don't use a shell to exec the requested command. Now we have
these functions they can be tightened up (environment etc.) as required
to make a safe popen. It should now be safe to add the environement
variable loading code to loadparm.c
Jeremy.
(This used to be commit b52e92b09d4ca3b66e534f520468dee27065d048)
2000-02-15 19:36:47 +00:00
Jeremy Allison
fe05c85250 Fixed wildcard match bug with '****' with smbclient. Found by Andrew (damn him! :-).
Jeremy.
(This used to be commit c8ca70f99ee2eae5e29ddf0dd4bc231fbcd188f2)
2000-02-09 15:50:44 +00:00
Jeremy Allison
27ce49e3e6 Moved over lib/util_sec (with added fixes) as the HEAD source
seems to have drifted a little.
Jeremy.
(This used to be commit ebcdb4afee04cc3b94e60b1de86c2b534d4e233e)
2000-02-08 11:32:43 +00:00
Jean-François Micouleau
07fd3b392d Hum, I should remove my gloves when I'm in front of an xterm :)
fixed a stupid bug in unistr2_to_ascii that I introduced

fixed getprinterdata()
(This used to be commit 2f544a807714024c0fe2ddc26e11c9ddcb47e81f)
2000-02-07 18:06:54 +00:00
Jean-François Micouleau
59ac32c255 Jeremy can you check lib/util_unistr.c for codepages support ?
I added 2 UNICODE <-> ASCII functions which _don't_ honor codepage
support.

	J.F.
(This used to be commit b81dc7b7f832cae2e66076398a134fbb6c1f78ca)
2000-02-07 16:22:16 +00:00
Tim Potter
3d9a9cbe96 Comments to use vfs_* functions instead of dos_* unless really
accessing files on local disk.
(This used to be commit b55f63da7e6a3c306ce668c77ed63a41d33240db)
2000-02-03 05:10:09 +00:00
Jeremy Allison
ace4006c9f Added hash-based stat cache code from Ying Chen.
Jeremy.
(This used to be commit b62a1bd6328f5894ae1a2fef3ef6fc66304ade52)
2000-01-26 21:25:35 +00:00
Jeremy Allison
d867b86721 Second set of inline optimisation fixes from Ying Chen <ying@almaden.ibm.com>.
Stop makeing function calls for every use of skip_multibyte_char. This function
is called several *million* times during a NetBench run :-).
Jeremy.
(This used to be commit e5a3deba46ea2d4cb49a6c4b73edd766fe8b5a5c)
2000-01-26 00:12:35 +00:00
Jeremy Allison
b5e7e4277d First set of speed improvements from Ying Chen <ying@almaden.ibm.com>.
Inline several commonly used functions as macros.
Jeremy.
(This used to be commit fc0219c7cc4b83e6db17d5b3be70d74fd7971089)
2000-01-25 22:57:51 +00:00
Luke Leighton
d91bfabc5d made cvs main up-to-date with samba_tng, with addition of process id to
msrpc loop-back interface.
(This used to be commit adbf97c0a93149e17496b002ecc8ecdb3f360ed5)
2000-01-21 02:33:21 +00:00
Andrew Tridgell
5eae2eaebe make string_init() static
use string_set() instead, to avoid the bug Richard discovered
(This used to be commit fdcbf6b52d8373bf8f35718a9649788415c23342)
2000-01-16 11:07:11 +00:00
Jeremy Allison
3a6c2069d7 Added "inherit permissions" patch.
Fixed locking bug found by Andrew.
Jeremy.
(This used to be commit 38dffd360dc2e44bfc9e751f017e24f81ff0f2fa)
2000-01-14 01:41:04 +00:00
Jeremy Allison
50be4e1f34 Fix problems with broken libc fvct returns.
Jeremy.
(This used to be commit 6b61f2fe66a62082fdab998ec7bbb1184b9583d7)
2000-01-12 02:52:02 +00:00
Jeremy Allison
8f4e672094 Fixed pointer arithmetic found by IRIX compiler.
Jeremy.
(This used to be commit 20d72e8959fc800836369e4c970f7cb84b95ac9a)
2000-01-11 20:12:46 +00:00
Jeremy Allison
ec5b3043bf Fixed bug in unix_mask_match() that caused veto files not to work.
Jeremy.
(This used to be commit f5fedf80bce84dba1468631202337077511bcd25)
2000-01-11 02:18:46 +00:00