1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-23 00:23:53 +03:00
Commit Graph

140 Commits

Author SHA1 Message Date
Andrew Tridgell
147d49dade use *SMBSERVER convention in smbwrapper to allow us to connect to
servers that we don't know the netbios name of.
-
Andrew Tridgell
7bd738c30a add support for unlink() on printer shares in smbwrapper. unlink()
will remove the job from the pirnt queue.
-
Andrew Tridgell
080fb61b69 added support for printing via smbwrapper
You can print using "cp filename /smb/SERVER/PRINTER/jobname"

You can list the current printqueue using ls
-
Andrew Tridgell
98f9bb94fc use CLI_BUFFER_SIZE instead of BUFFER_SIZE -
Andrew Tridgell
bbc891727e fix an error code in cli_error() -
Andrew Tridgell
c728d1c5d6 modified cli_read() and cli_write() to issue multiple outstanding
read/write requests for large reads. up to max_mux requests may be
outstanding. This gives _much_ better throughput and should allow
smbsh to saturate just about any network.

this is an implementation of the "fast SMB" method I described on the
CIFS list a couple of months back.
-
Andrew Tridgell
83b7bfa821 use const char -
Andrew Tridgell
06f1af12c3 fixed a authentication problem with non-encrypting servers -
Andrew Tridgell
1dcc84b942 fixed vi on smbwrappper (it was a problem in cli_read()) -
Andrew Tridgell
5674fb4e9d added simple device/inode number support based on a checksum of the
filename
-
Andrew Tridgell
a063252913 - always open for reading (otherwise getattrE won't work).
- added somemore NT error codes
-
Andrew Tridgell
b85d961447 added unlink() and rename() support to smbwrapper -
Andrew Tridgell
715a6631c7 - ignore *.p files
- enable cli_RNetSharEnum
- fix password handling in sesssetup for NT1 protocol
- handle partial reads and writes in cli_{read,write}
- added cli_getattrE
- modify cli_qpathinfo() to swap byte order for win95 servers
- handle temporary errors from FINDFIRST/FINDNEXT from win95 servers,
  when we get a error we sleep for a bit and retry
- return approx unix errno from cli_error(). Need to add a lot more
  cases to this.
-
Luke Leighton
bcf39ffdcc Makefile.in :
- added srvsvc client files

clientgen.c :

	- replaced cli_error(cli, int *cls, int *err) with
	  cli_error(cli, uint8 cls, uint32 *err).  this version detects
	  32 bit status messages.  the DOS error "MORE_DATA", the
	  equivalent of the 32 bit *warning* 0x8000 0005
	  (STATUS_BUFFER_OVERFLOW), was being processed as an error,
	  terminating the cli_receive_trans() call.

cli_pipe.c :

	- replaced calls that had been incorrectly modified from
	  32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
	  to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
	  the use of the old version of cli_error (DOS only)
	  instead of the new one (DOS and 32 bit) caused the
	  dce/rpc client code to fail.

	- replaced 2 space indentation with tab indentation in all functions.

cli_srvsvc.c :
cmd_srvsvc.c :

	- added these files back in, fixing them up to use jeremy's
	  modified versions of the dce/rpc client functions.

parse_srv.c :

	- added back in some "unused" functions required by dce/rpc
	  client-side code.  it would be helpful if all such "unused"
	  functions could be added back in.

rpcclient.c :

	- added "session", "file", "share", "connection" enumeration
	  functions back in.  these are equivalent to nt's "NetXXXXXEnum"
	  Win32 (MSDN) functions.

	- added "srvinfo" function back in.  this is equivalent to
	  nt's NetServerGetInfo Win32 (MSDN) function.
-
Luke Leighton
a4e7cc3e46 - static function "create_new_hashes" was identical to "nt_lm_owf_gen".
create_new_hashes didn't zero the buffer for the md4hash: nt_lm_owf_gen
  did, because jeremy sorted this out a couple of days ago.  call
  nt_lm_owf_gen instead.

- call SMBOWFencrypt from SMBencrypt and SMBNTencrypt.

- added #ifdef DEBUG_PASSWORD debug password calls.
-
Andrew Tridgell
9bae21abaf several clientgen mods to support smbwrapper. In particular added
cli_list() for directory listing and expended some other functions a
bit.
-
Jeremy Allison
c42fb702b7 Fixed *nasty* bug in nt_lm_owf_gen() - this function was
not ensuring a zero filled buffer before doing crypto stuff.
See PR#10121. Beware of this !
Jeremy.
-
Jeremy Allison
6a261517a0 libsmb/clientgen.c: Fixed signed/unsigned compile warnings spotted by Herb.
param/loadparm.c:
smbd/oplock.c: Allow kernel oplocks to be turned off in the smb.conf file.
smbd/server.c: Move init_structs() to after the smb.conf file is loaded - preparation
               for making a "max open files" parameter.
Jeremy.
-
Jeremy Allison
e570db46fc Got very strict about the differences and uses of
uid_t, gid_t and vuid. Added sys_getgroups() to get
around the int * return problem. Set correct datatypes
for all uid, gid and vuid variables.
Jeremy.
-
Luke Leighton
1a1d8d0483 uchar / char typecast issues -
Alexandre Oliva
90a8a02484 get away with dummy and .dummy files -
Jeremy Allison
e0567433bd Changes to test in configure if capabilities are enabled on a system.
Changes to get Samba to compile cleanly with the IRIX compiler
with the options : -fullwarn -woff 1209,1174 (the -woff options
are to turn off warnings about unused function parameters and
controlling loop expressions being constants).
Split prototype generation as we hit a limit in IRIX nawk.
Removed "." code in smbd/filename.c (yet again :-).
Jeremy.
-
Alexandre Oliva
237a8e5fe6 automated generation of .dummy files for each subdirectory;
dummy.in files are no longer needed, and new directories will be taken
care of automatically, at configure (or config.status --recheck) time
-
Luke Leighton
aa38f39d67 added rpcclient program -
Alexandre Oliva
1ffc3b807a major autoconf clean-up
fix problems in builds with srcdir!=builddir
-
Andrew Tridgell
2204475c87 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?
-
Andrew Tridgell
0a5718b0ae if an address is ipzero in cli_connect() then do a name query -
Andrew Tridgell
55333edd2e cast the qsort to prevent warnings -
Andrew Tridgell
3eade55dc7 bounds check next_token() to prevent possible buffer overflows -
Andrew Tridgell
4460a1bc6a changed the way that name query records are sorted in replies. They
are now sorted by the number of common leading bits in the IP address
with the address of the querying host.
-
Jeremy Allison
779b924ec1 This checking fixes the statcache bug that stopped NetBench from running
correctly. Added new parameter "stat cache size" - set to 50 by default.

I now declare the statcache code officially "open" for business :-).
It gets a hit rate of 97% with a NetBench run and seems to make
using a case insensitive run as efficient as a case sensitive run.

Also tidied up our sys_select usage - added a maxfd parameter and
also added an implementation of select in terms of poll(), for systems
where poll() is much faster. This is disabled by default.

Jeremy.
-
Andrew Tridgell
b32a346a1c some smbtorture hacks (random IPC calls) -
Andrew Tridgell
01b642a379 reduced the memory footprint a bit by changing some large static int
arrays to uchar
-
Andrew Tridgell
068a862982 much cleaner chain pointer handling for both files and pipes.
the chain pointer is now stored as a static and is set whenever a
handle is created or extracted. This also makes the code less error
prone.
-
Jeremy Allison
1b9cbcd02e configure: Changes for extra headers.
configure.in: Source for header changes.
client/clitar.c: Fixed isXXX macros & debugs for gcc pedantic compile.
include/config.h.in: Added MEMSET, BZERO, MEMORY, RPCSVC_YPCLNT, STRINGS headers.
include/includes.h: Headers for the above.
include/smb.h: Made SIGNAL_CAST POSIX by default void (*)(int).
lib/access.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/charset.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/debug.c: Fixed signal functs.
lib/kanji.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/smbrun.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/util.c: Fixed isXXX macros & debugs for gcc pedantic compile.
libsmb/namequery.c: Fixed isXXX macros & debugs for gcc pedantic compile.
locking/shmem.c: Fixed isXXX macros & debugs for gcc pedantic compile.
locking/shmem_sysv.c: Fixed error messages in sysV stuff.
nmbd/asyncdns.c: Fixed signal functs.
nmbd/nmbd.c: Fixed isXXX macros & debugs for gcc pedantic compile.
passdb/passdb.c: Fixed isXXX macros & debugs for gcc pedantic compile.
passdb/smbpassfile.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/chgpasswd.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/ipc.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/nttrans.c: Fixed fsp code path.
smbd/password.c: fixed HAVE_YP_GET_DEFAULT_DOMAIN problem.
smbd/printing.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/reply.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/server.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/trans2.c: Fixed core dump bug.
smbd/uid.c: Fixed isXXX macros & debugs for gcc pedantic compile.
Jeremy.
-
Andrew Tridgell
c7ee025ead this is the bug change to using connection_struct* instead of cnum.
Connections[] is now a local array in server.c

I might have broken something with this change. In particular the
oplock code is suspect and some .dll files aren't being oplocked when
I expected them to be. I'll look at it after I've got some sleep.
-
Andrew Tridgell
687f76a17d added ignore rules for the dummy files -
Andrew Tridgell
be762dc3de these dummy files are needed for autoconf processing -
Christopher R. Hertel
247dbc9a24 I finished removing timestring() calls from DEBUG() messages. Also went
through and changed some DEBUG() calls to DEBUGADD() to combine output
under a single timestamp.  There were too many timestamps.

Note that Jeremy has told me that he's working on adding a config parameter
to turn timestamps off.  Cool.

Chris -)-----
-
Christopher R. Hertel
60286cceca As per a Andrew's message, I went through and removed the timestring()
timestamps from several DEBUG messages.  The timestamps are redundant now
that DEBUG() provides them automatically.

There are still a few more files to do, but I've got to get home for dinner.

Chris -)-----
-
Andrew Tridgell
3bda7ac417 merge from the autoconf2 branch to the main branch -
Christopher R. Hertel
d64ca4250f Added strupper() function call to up-case the scope field in the
make_nmb_name() function.  Database lookups (eg. gdbm) will often use
byte-by-byte comparisons, so it is important that the case and padding
are correct.

Chris -)-----
-
Jeremy Allison
1fcb094ba0 nisppass.c: Fixed incorrect parameter usage.
nmbd_become_lmb.c: Add 'force_new_election' parameter to some functions.
                   This allows the start of the election to be done *after*
                   the demotion from local master browser is done.
                   Also changed code so release of 1d name is done
                   immediately to allow other local master to gain it.
nmbd_elections.c: Ensured no elections are run until we have registered
                  the WORKGROUP<1e> name that we must listen on to participate
                  in elections.
nmbd_incomingdgrams.c: Use force_new_election code.
nmbd_namelistdb.c: Make update_name_in_namelist static.
nmbd_subnetdb.c: Fix bug in comparison function. We cannot use memcmp
                   as structure packing may make this fail.
nmbd_packets.c: Ensure that we only send one release packet when
                sending a broadcast packet.
nmbd_workgroupdb.c: Ensure we put the correct value in the ElectionCriterion field.
nmblib.c: Ensure make_nmb_name zero's the struct nmb_name.
Jeremy.
-
Richard Sharpe
dc9436bae4 Remove the copyright to Canon Information Systems Australia, as we don't
want them to have the copyright.

Added a new DOSERR response code that Win95 returns, unimp, unimplemented.

Added code to ignore errors on setting remote time, as Win 95 does not like
the time being changed on a directory.  Win NT and Samba are OK at this.

This is the next to last clean-ups here. Next is to properly handle restore
times on directories (except for Win95--see above).

Now have Jay's changes in and have fixed a bug reported by Tim Lee.
-
Jeremy Allison
d23b443225 clientgen: Added USE_SSL for client shutdown.
clitar.c: Added 'Samba style' comments before string_create_s().
loadparm.c: Fixed missing comma in SSL code.
util.c: Removed string_create_s(). Currently it's only called from
        clitar.c and having it here as well as a static in clitar
        causes the compile to break (Richard, please decide where
        you want this function).
lib/rpc/parse/parse_net.c: Fix from <anders.blomdell@control.lth.se>
                           to stop coredump on missing parameter.
Jeremy.
-
Jeremy Allison
31e768369f Added SSL support from Christian Starkjohann <cs@obdev.at>
This patch may not yet compile with -DUSE_SSL enabled, further
Makefile changes may be needed. But it was important to get
this code in place before I go off to USENIX.
Jeremy.
-
Jeremy Allison
5bf17840ac namequery.c: Fixed SGI IRIX 5.x compiler problem.
server.c: Added MACHINE.SID file generation - use lp_domain_sid() be default.
smbpass.c: Exposed do_file_lock() as I now use it in server.c
Jeremy.
-
Andrew Tridgell
204a939807 test for overflow in nmb name parsing code -
Jeremy Allison
2d77445400 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.
-
Andrew Tridgell
ee09e9dadb changed to use slprintf() instead of sprintf() just about
everywhere. I've implemented slprintf() as a bounds checked sprintf()
using mprotect() and a non-writeable page.

This should prevent any sprintf based security holes.
-