1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-29 21:47:30 +03:00

88 Commits

Author SHA1 Message Date
Kai Blin
3144e45085 (Fixed) Final part of fix for bug #5953 - smbclient crashes: cli_list_new segmentation fault (with NAS-BASIC server). 2008-12-16 13:40:38 -08:00
Jeremy Allison
3edbc14405 Revert "Final part of fix for bug #5953 - smbclient crashes: cli_list_new segmentation fault (with NASBASIC server)."
Error in commit !

This reverts commit bbd5824140992ea457d4270ee77018ebb367abc9.
2008-12-16 13:31:52 -08:00
Kai Blin
bbd5824140 Final part of fix for bug #5953 - smbclient crashes: cli_list_new segmentation fault (with NASBASIC server). 2008-12-16 13:19:15 -08:00
Jeremy Allison
3878dad0c6 Fix bug #5953 - smbclient crashes: cli_list_new segmentation fault.
Jeremy.
2008-12-08 14:24:38 -08:00
Jeremy Allison
1d940490e8 Fix from Guenter Kukkukk <linux@kukkukk.com> to fix listing against
OS/2 servers. OS/2 returns eclass == ERRDOS && ecode == ERRnofiles
for a zero entry directory listing.
Jeremy.
(This used to be commit b34da627053581a9584367e177566d4a2cef7e82)
2008-02-28 02:22:13 -08:00
Jeremy Allison
20d6ebe813 We don't need the extra null termination - we've
already got this in the cli_receive_trans calls.
Jeremy.
(This used to be commit 99424bba7bb45b05d970bab4a5e93f2cb636fcbb)
2008-02-08 22:02:00 -08:00
Jeremy Allison
0b583e4329 Make clilist work again with OS/2 (kukks help!).
Jeremy.
(This used to be commit 2e27309401faa554620886b0e369db9d9c08e4fd)
2008-02-08 19:02:49 -08:00
Jeremy Allison
73d838a2da From kukks - prevent crashes if finfo.name == NULL.
Jeremy.
(This used to be commit 101f194795f87c709abfdfbcde710131a88f9d20)
2008-02-08 18:44:33 -08:00
Jeremy Allison
48ea5852b6 Try and fix length and finfo calls for older clients. Working
on issues reported by kukks.
Jeremy.
(This used to be commit dcd77dd4f480db3273a56c5740b6e5d78f8be4a9)
2008-02-08 11:22:53 -08:00
Jeremy Allison
afc93255d1 Add SMB encryption. Still fixing client decrypt but
negotiation works.
Jeremy.
(This used to be commit d78045601af787731f0737b8627450018902b104)
2007-12-26 17:12:36 -08:00
Volker Lendecke
1e26ecf666 Fix C++ warnings
(This used to be commit 01a5c3ea4bf18d99ca1c35e8c38367046e4c867b)
2007-12-08 09:39:36 -08:00
Jeremy Allison
4acfce6b03 Don't understand this. I have no changes here....
Jeremy.
(This used to be commit 49534432d4c63d0dfd7bf080c30adecef06deade)
2007-12-06 10:10:16 -08:00
Jeremy Allison
8ab33fc335 Fix path length limits on cli_list (outgoing. Incoming
will be fixed with pstring elimination).
Jeremy.
(This used to be commit cd43b93d405bf892d1d8941b2d1e64d7d53adf69)
2007-12-05 16:56:19 -08:00
Jeremy Allison
42c87fe6e6 Remove pstrings. Ensure we validate offsets.
Jeremy.
(This used to be commit ff06cc34e66a18ba71dd54f6c78b05a45b9f2d85)
2007-11-29 13:24:14 -08:00
Jeremy Allison
30191d1a57 RIP BOOL. Convert BOOL -> bool. I found a few interesting
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
2007-10-18 17:40:25 -07:00
Gerald (Jerry) Carter
e5a951325a [GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.
(This used to be commit 5c6c8e1fe93f340005110a7833946191659d88ab)
2007-10-10 15:34:30 -05:00
Andrew Tridgell
5e54558c6d r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10 12:28:22 -05:00
Jeremy Allison
d824b98f80 r23779: Change from v2 or later to v3 or later.
Jeremy.
(This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10 12:28:20 -05:00
Jeremy Allison
0829e1ad1c r22391: Looks bigger than it is. Make "inbuf" available
to all callers of smb_setlen (via set_message()
calls). This will allow the server to reflect back
the correct encryption context.
Jeremy.
(This used to be commit 2d80a96120a5fe2fe726f00746d36d85044c4bdb)
2007-10-10 12:19:30 -05:00
Jeremy Allison
540911001d r21768: Fix the client dfs code such that smbclient can
process deep dfs links (ie. links that go to non root
parts of a share). Make the directory handling conanonical
in POSIX and Windows pathname processing.
dfs should not be fully working in client tools. Please
bug me if not.
Jeremy.
(This used to be commit 1c9e10569cd97ee41de39f9f012bea4e4c932b5d)
2007-10-10 12:18:30 -05:00
Derrell Lipman
40665edf5e r18011: Should fix bug 3835.
Jeremy: requires your eyes...

If the remote connection timed out while cli_list() was retrieving its list of
files, the error was not returned to the user, e.g. via smbc_opendir(), so the
user didn't have a way to know to set the timeout longer and try again.  This
problem would occur when a very large directory is being read with a too-small
timeout on the cli.

Jeremy, although there were a couple of areas that needed to be handled, I
needed to make one change that you should bless, in libsmb/clientgen.c.  It
was setting

  cli->smb_rw_error = smb_read_error;

but smb_read_error is zero, so this had no effect.  I'm now doing

  cli->smb_rw_error = READ_TIMEOUT;

instead, and according to the OP, these (cumulative) changes (in a slightly
different form) solve the problem.

Please confirm this smb_rw_error change will have no other adverse effects
that you can see.

Derrell
(This used to be commit fa664b24b829f973156486896575c1007b6d7b01)
2007-10-10 11:39:48 -05:00
Jeremy Allison
a64925ddff r17800: Start using struct timespec internally for file times
on the wire. This allows us to go to nsec resolution
for systems that support it. It should also now be
easy to add a correct "create time" (birth time)
for systems that support it (*BSD). I'll be watching
the build farm closely after this one for breakage :-).
Jeremy.
(This used to be commit 425280a1d23f97ef0b0be77462386d619f47b21d)
2007-10-10 11:38:48 -05:00
Jeremy Allison
aee6b5942a r17761: Handle times consistently across all client utils.
Fixes bugs reported in libsmbclient.
Jeremy.
(This used to be commit 42a417fb75313b093948602c3be8e2f386048b5f)
2007-10-10 11:38:47 -05:00
Volker Lendecke
02eea79624 r17333: Some C++ warnings
(This used to be commit be9aaffdaccae06c8c035eaf31862e34b7cfbe38)
2007-10-10 11:38:26 -05:00
Jeremy Allison
fe28eb2e41 r16541: Fix #3862 reported by jason@ncac.gwu.edu.
Jeremy.
(This used to be commit 09e11dcb2304eec9656e76c24921c82f4a870914)
2007-10-10 11:18:58 -05:00
Jeremy Allison
61d2dfcd30 r15997: Fix bug in OS/2 Warp - it doesn't set the ff_last
offset correctly when doing info level 1 directory
scans. Thanks to Guenter Kukkukk <Guenter.Kukkukk@kukkukk.com>
for reporting this problem and testing the fix.
Jeremy.
(This used to be commit 65d4dfbd6045a4e3f9eaf520c70ef29ff7ddee82)
2007-10-10 11:17:17 -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
0af1500fc0 r13316: Let the carnage begin....
Sync with trunk as off r13315
(This used to be commit 17e63ac4ed8325c0d44fe62b2442449f3298559f)
2007-10-10 11:06:23 -05:00
Derrell Lipman
f396e2248a r12758: r12127@cabra: derrell | 2006-01-03 15:22:18 -0500
remove old superfluous comment and ifdef
(This used to be commit ee7fcb43ad456929f1f005f47c52a4b4d46c5087)
2007-10-10 11:06:02 -05:00
Jeremy Allison
76796e212c r12275: Fix memory leak found by Mikhail Kshevetskiy <kl@laska.dorms.spbu.ru>
and followed up by derrell@samba.org.
Jeremy.
(This used to be commit 5cab88f1444177129bb5521ccc4afd8869e9bf25)
2007-10-10 11:05:51 -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
Tim Potter
ab398643a4 r8572: Remove crufty #define NO_SYSLOG as it's not used at all anymore.
(This used to be commit 985dbb47d925e79c1195ca219f7ab5d6648b22b8)
2007-10-10 11:00:11 -05:00
Jeremy Allison
0100bb0eb6 r7157: Ensure we abort a directory listing if we see the same
name twice between packets.
Jeremy.
(This used to be commit f9063b383ed2c53841ac27691b6a593b80c20b12)
2007-10-10 10:57:04 -05:00
Jeremy Allison
57fa7e1547 r7151: Fix for bug #2698. If a unicode to unix charset conversion fails (due to buggy iconv?) we can
be left with a filename that doesn't exist on the remote machine. If we then do a findnext
with this file the server gets confused and restarts from the beginning of the directory,
causing directory listing loops. Fix this by keeping a copy of the "raw" filename data and
length and using this as the argument to findnext. This won't fix the incorrect iconv
conversion into the finfo struct but at least it ensures that directory listings always
terminate. Tested against NTFS and FAT directories.
Jeremy.
(This used to be commit 848940d5a91b310e58d0631ead293418ea4186f0)
2007-10-10 10:57:03 -05:00
Jeremy Allison
45d03e327a r6994: Fix for bugid #2729 - it turns out resume keys are *mandatory* for
a search when listing a W2K and above server from a FATxx filesystem
only. Thanks to Steve Langasek <vorlon@debian.org> for giving me the
essential info that allowed me to reproduce and thus fix this.
Jeremy.
(This used to be commit 8227675d3dbcd4f8bb2a24ea7e3e05c428b7c929)
2007-10-10 10:56:59 -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
7478d77b31 r5991: Fixup last entry offset correctly for level 260.
Should fix bug found by Derrell.Lipman@UnwiredUniverse.com.
Jeremy.
(This used to be commit 5ded615679e346d1ea155cde3413396d3e3c3a6b)
2007-10-10 10:56:14 -05:00
Jeremy Allison
656140bf4b r5975: Re-arrange code and comments to make more sense.
Jeremy.
(This used to be commit 08616ad80d96d1b7b558eec036bafb4bf3663942)
2007-10-10 10:56:14 -05:00
Jeremy Allison
47f58beb28 r5973: Fix up overwrite of last 2 bytes on clilist (could cause coredump).
Jeremy.
(This used to be commit b0de2d761f6697ca1f4859ba098af6162ab42027)
2007-10-10 10:56:14 -05:00
Jeremy Allison
f8f090ad24 r5970: Fix old bug where ff_searchcount was being compared -1 ! This caused a
filename to be processed twice.
Jeremy.
(This used to be commit 2ed7e30cbb3e194a08d5d9b46993652666193bec)
2007-10-10 10:56:13 -05:00
Jeremy Allison
b360f556a5 r5967: Fix typo bug where flags overwrote info level.
Jeremy.
(This used to be commit 214a2cbe5aed9f0540b03350b60d0eec1c61bad8)
2007-10-10 10:56:13 -05:00
Jeremy Allison
4a62d418d9 r5723: Add missing part of fix for #2271. After analysing the actions of a XP
client against a Samba server. It never uses the "continue" flag, but always
does "new search, continue from this file" instead. Change our client code
to do the same (it appears that's all they test in W2K etc.).
Jeremy.
(This used to be commit 710bceee325005b8ca8e8ed04acc50bafa92b6e6)
2007-10-10 10:55:57 -05:00
Jeremy Allison
9d23e37a6f r5702: Fix bug #2271. Correctly pull out and use resume names in a
directory listing (we were incorrectly understanding what was
returned in the "last name" entry).
Jeremy.
(This used to be commit 4f2da9ecf1e5cee4749839ea1b35a942d27de09e)
2007-10-10 10:55:55 -05:00
Gerald Carter
96572957fc r5577: get recurse; dir working across single level dfs referrals
(This used to be commit d4443807bc7a5a8615c69517365a92709db7ce29)
2007-10-10 10:55:48 -05:00
Gerald Carter
1b0f75ddfb r5520: fix last remaining dfs issues with smbclient.
* all the unix extension commands should work
* send the correct TRANS2_FINDFIRST format to 2k to
  get a listing from a msdfs root share (tested against
  smbd as well).
* mkdir, rmdir, etc... all seem ok.

I'm sure bugs will pop up so keep testing.

Last thing I plan on doing is to clean up the horrible
mess with connection management in smbclient and global
variables (so i can move the cli_cm_xx() routines to a
separate file).
(This used to be commit 53d6a5f9d16aef4afc60b4b37b296b256da00dfd)
2007-10-10 10:55:44 -05:00
Jeremy Allison
acf9d61421 r4088: Get medieval on our ass about malloc.... :-). Take control of all our 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)
2007-10-10 10:53:32 -05:00
Jim McDonough
24df38dbc6 Janitor for tpot...bugzilla #1098, msleep already exists on aix
(This used to be commit 4319df7fdc2d878c509381923cc1db4d731620ba)
2004-02-23 02:54:03 +00:00
Jeremy Allison
231124ced9 Fixes to check for wraps which could cause coredumps.
Jeremy.
(This used to be commit ad06edd1bb58cc5e2c38a364b1af96a933b770af)
2003-10-29 21:28:00 +00:00
Jeremy Allison
2443f7ffa2 Correct fix (removed the earlier band-aid) for what I thought was a signing
bug with w2k. Turns out that when we're doing a trans/trans2/nttrans call
the MID and send_sequence_number and reply_sequence_number must remain constant.
This was something we got very wrong in earlier versions of Samba. I can now
get a directory listing from WINNT\SYSTEM32 with the older earlier parameters
for clilist.c
This still needs to be fixed for the server side of Samba, client appears to
be working happily now (I'm doing a signed smbtar download of an entire W2K3
image to test this :-).
Jeremy.
(This used to be commit 2093a3130d4087d0659b497eebd580e7a66e5aa3)
2003-08-02 00:29:45 +00:00
Jeremy Allison
9c49c46948 Fix bug we discovered in W2K client signing on secondary trans2 packets.
Use W2K parameters. tpot please re-test smbclient with your problem
directory.
Jeremy.
(This used to be commit 677d3a3c4ca0b67148e5e56fa876773a067679bd)
2003-07-30 19:00:52 +00:00