| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This fixes a potential crash bug, a client can make us read memory we
should not read. Luckily I got the disp checks right...
Volker
|
|
|
|
| |
This reverts commit fc9247572e0ace4956845e279c63c9d00fa667bd.
|
|
|
|
|
|
| |
disposition."
This reverts commit 24348e2e028f8f63c7acad33f2f9a362a3d3fdc0.
|
|
|
|
|
|
| |
infomail@lordb.de."
This reverts commit 7292c322ca70e9df82e020f45f1510e9ca02efbc.
|
|
|
|
|
|
| |
STATUS_OBJECT_NAME_NOT_FOUND on set file disposition call."
This reverts commit e73c090b5ff624f71ce827c494cd71ca73144ba9.
|
|
|
|
|
|
| |
actually works correctly we must emit the change notify before we change the name, not before."
This reverts commit ac2046979cacf96f8d4df7c5ece06e55d51758c8.
|
|
|
|
|
|
| |
<gepardcv@gmail.com>."
This reverts commit 8443b4859f64aa5459976ce37ca96a90daae889a.
|
|
|
|
| |
This reverts commit 41b2199fd87598076a1f45106b512c94042f7968.
|
|
|
|
| |
This reverts commit 9953885d0be6a2477f5fd29940f3f1d6a7136cf4.
|
|
|
|
| |
This reverts commit feb057d4503118e519b5dbd9d2c3ca2c1ee55380.
|
|
|
|
|
|
|
|
|
| |
If total_data == 4 Windows doesn't care what values
are placed in that field, it just ignores them.
The System i QNTC IBM SMB client puts bad values here,
so ignore them.
Jeremy.
(cherry picked from commit 5b1d8588d01d11251541829c5a3dff211fe925fd)
|
|
|
|
|
| |
Jeremy.
(cherry picked from commit 4f1cdfe0901f4c78dff56ae5c26d2801b97d50d5)
|
|
|
|
| |
(cherry picked from commit 0f3f34033a80e44fa18cae452a164e445392138a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This API is unusual in that if used to remove a non-list head it nulls out
the next and prev pointers. This is what you want for debugging (don't want
an entry removed from the list to be still virtually linked into it) but
means there is no consistent idiom for use as the next and prev pointers
get trashed on removal from the list, meaning you must save them yourself.
You can use it one way when deleting everything via the head pointer, as
this preserves the next pointer, but you *must* use it another way when not
deleting everything via the head pointer. Fix all known uses of this (the main
one is in conn_free_internal() and would not free all the private data entries
for vfs modules. The other changes in web/statuspage.c and winbindd_util.c
are not strictly neccessary, as the head pointer is being used, but I've done
them for consistency. Long term we must revisit this as this API is too hard
to use correctly.
Jeremy.
(cherry picked from commit 347fc4ed725083f2c520afc39f7c81db0dd60324)
|
|
|
|
|
|
|
| |
works correctly we must emit the change notify before we change the name, not before.
Jeremy.
(cherry picked from commit 10ae99d86c0c90bee9a0538854f6f96fc7cbbc23)
|
|
|
|
|
|
|
|
| |
STATUS_OBJECT_NAME_NOT_FOUND on set file disposition call.
This was my fault. I use a singleton cache (positive and negative) to speed up pathname based qfileinfo/setfileinfo lookups for alternate fsp's open on the same path. I only invalidated the negative cache on adding a new file fsp, as I incorrectly imagined the new fsp was put at the *end* of the open files list. DLIST_ADD puts it at the start, meaning any subsequent open wasn't seen once the cache was set. Doh !
Jeremy.
(cherry picked from commit a7fd59a26bfc4a98b6936dc3ac8e67e1a7cb3733)
|
|
|
|
|
|
|
|
|
| |
We don't need to deny a DELETE open on a readonly file (I'm also adding a s4
torture test for this), the set_file_disposition call will return
NT_STATUS_CANNOT_DELETE if the delete-on-close bit is set
on a readonly file (and we already do this).
Jeremy.
(cherry picked from commit dd43302066b2d3f5270d3ee25a1e2c85d8ce2b85)
|
|
|
|
|
|
|
|
|
| |
disposition.
We were checking that fd != -1 in file_find_di_XXX calls which is no longer
needed due to a change in internal semantics.
Jeremy.
(cherry picked from commit bd7acd6344022e87495edc124e262eb50ba5ebd8)
|
|
|
|
|
|
| |
That was an old and subtle bug.
Jeremy.
(cherry picked from commit c412888f916563c44c4c753884df23c1951f6e27)
|
|
|
|
| |
(cherry picked from commit 144b1bb05a734e15369d6d59636b6849d9405af5)
|
|
|
|
| |
(cherry picked from commit c2a05d4ed34aa8185a7d236e8d7b1493d67a3068)
|
|
|
|
|
|
| |
reported by Regan Heath <Regan.Heath@BridgeHeadSoftware.com>.
Jeremy.
(cherry picked from commit 1b839eb9e4a6312e638d1856d1225b170525da7e)
|
|
|
|
|
| |
Jeremy.
(cherry picked from commit 46a5c08b101f1c218ecd6397614dde1d13a9077a)
|
|
|
|
|
|
|
| |
using the parent security descriptor type and flags instead
of using the passed in SD.
Jeremy.
(cherry picked from commit c22bf57329f16a45eb0954b72f8083270f6535e7)
|
|
|
|
|
|
|
|
| |
with write time,
just return what the underlying filesystem says. Trying not to confuse UNIX apps any more than necessary.
Jeremy.
(cherry picked from commit 4e06c71a12654d78c9a94fb023e372920bf7618b)
|
|
|
|
|
|
|
| |
When alignment was in place, we pretended to send more data/params according to
the param_offset/param_length and data_offset/data_length parameters than would
actually fit into the SMB according to the NBSS length field.
(cherry picked from commit 2ae870aead5e0ea7e7f9f6f9730f989ae34755b9)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- only the first non truncating write causes
the write time update with 2 seconds delay.
It's not enough to check for an existing update event
as it will be NULL after the event was triggered.
- SMBwrite truncates always update the write time
unless the sticky write time is set.
- SMBwrite truncates don't trigger a write time update on close.
metze
(cherry picked from commit 142a9703ae19a467a23ee72429f899dae156df64)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ok, here's the fix for the write times breakage
with the new tests in S4 smbtorture.
The key is keeping in the share mode struct
the "old_file_time" as the real write time,
set by all the write and allocation calls,
and the "changed_write_time" as the "sticky"
write time - set by the SET_FILE_TIME calls.
We can set them independently (although I
kept the optimization of not setting the
"old_file_time" is a "changed_write_time"
was already set, as we'll never see it.
This allows us to update the write time
immediately on the SMBwrite truncate case,
SET_END_OF_FILE and SET_ALLOCATION_SIZE calls,
whilst still have the 2 second delay on the
"normal" SMBwrite, SMBwriteX calls.
I think in a subsequent patch I'd like to
change the name of these from "old_file_time"
to "write_time" and "changed_write_time" to
"sticky_write_time" to make this clearer.
I think I also fixed a bug in Metze's original
code in that once a write timestamp had been
set from a "normal" SMBwriteX call the fsp->update_write_time_triggered
variable was set and then never reset - thus
meaning the write timestamp would never get
updated again on subsequent SMBwriteX's.
The new code checks the update_write_time_event
event instead, and doesn't update is there's
an event already scheduled.
Metze especially, please check this over for
your understanding.
Jeremy.
(cherry picked from commit f2fb6321b6666a30ca7fa11bc8d395f1a1865bb2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following test program prints "8" on 64-bit :-)
static void print_size(const char lenbuf[4])
{
printf("sizeof(lenbuf) = %d\n", (int)sizeof(lenbuf));
}
int main(void)
{
const char lenbuf[4];
print_size(lenbuf);
return 0;
}
Jeremy, please check :-)
Volker
(cherry picked from commit 9daea0ccfdda58450be3c9a9a94c016f5900c319)
(cherry picked from commit 11fdeeeb551ac3287b75e114b15bc4f76cf2d337)
|
|
|
|
|
|
|
|
| |
support it (*BSD and MacOSX). This really needs to be in 3.2.x.
Should have done this ages ago, sorry.
Jeremy.
(cherry picked from commit 0cba30073410ba499834ac26dee3f81a75c8de4f)
|
|
|
|
|
|
|
| |
We need to become root for AIO read and write to allow the AIO thread
to send a completion signal to the parent process when the IO
completes
(cherry picked from commit 27b1ae601542ebe2e23ab4ff81eb14f8e03a3caf)
|
|
|
|
|
| |
cannot do sendfile for this file"
(cherry picked from commit dc04b5adf7569b3501cb95f86d01e00276b41c23)
|
|
|
|
|
|
|
|
| |
farm failures when winbindd connects as guest.
This one took a *lot* of tracking down :-).
Jeremy.
(cherry picked from commit f845c95dcfa0b1630a0057c62941bb8a72ebdd83)
|
|
|
|
|
|
|
|
|
|
| |
Some of the bits generate INVALID_PARAMETER and some bits
are ignored when they come from a client, that's why we need
to use bits from the ignored range for our internal usage.
metze
(cherry picked from commit 7b4c8a4e39f310eb450918fa841b0ea1b4af19f7)
(cherry picked from commit 3366ac2857820d87fb36a1357786a3564d258da5)
|
|
|
|
| |
This reverts commit ebd1f8f9297b31353d094ddccc320a83f02877ce.
|
|
|
|
|
|
| |
build farm failures when winbindd connects as guest."
This reverts commit a90648e905aebc98c78897adf76729bea269cedf.
|
|
|
|
|
|
|
|
| |
farm failures when winbindd connects as guest.
This one took a *lot* of tracking down :-).
Jeremy.
(cherry picked from commit f845c95dcfa0b1630a0057c62941bb8a72ebdd83)
|
|
|
|
|
|
|
|
|
|
| |
Some of the bits generate INVALID_PARAMETER and some bits
are ignored when they come from a client, that's why we need
to use bits from the ignored range for our internal usage.
metze
(cherry picked from commit 7b4c8a4e39f310eb450918fa841b0ea1b4af19f7)
(cherry picked from commit 3366ac2857820d87fb36a1357786a3564d258da5)
|
|
|
|
|
|
|
|
| |
is orphaned if socket address parameter is invalid.
If the "socket address" parameter is a null string that is an invalid value for Samba 3.2 but valid for Samba 3.0.
Jeremy.
(cherry picked from commit a46dc151f692e6b4bd14d3881f90bca5fe5b9474)
|
|
|
|
|
|
|
| |
xp/2003 explorer freezes browsing shares on samba ipv6 hosts. Caused by missing
reply packet to SMB printclose packet.
Jeremy
(cherry picked from commit 93c977e80594e20ebd562b1eb8a03d57b9299461)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
one of our virtualised functions, such as db_open(), but error is only
set when a system call fails, and it is not uncommon for us to fail a
function internally without ever making a system call. That led to us
passing back success when a function had in fact failed.
I found two places where we relied on map_nt_error_from_unix()
returning success when errno==0, but lots and lots of places where we
relied on the reverse, so I fixed those two places.
map_nt_error_from_unix() will now always return an error, returning
NT_STATUS_UNSUCCESSFUL if errno is 0
(cherry picked from commit 69d40ca4c1af925d4b0e59ddc69ef8c26e6501d1)
(cherry picked from commit 8c66020a82d9b92fb10d14359b1381d58ad4972b)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
map_nt_error_from_unix() now assumes that it is called in
an error path and returns an error even for a given errno == 0.
The original behaviour of unix_convert() used the mapping
of errno == 0 ==> NT_STATUS_OK to return success through
an error path.
I think this must have been an oversight, and unix_convert() worked
only by coincidence (or because explicitly using the knowledge
of the conceptually wrong working of map_nt_error_from_unix().
This patch puts this straight by not interpreting errno == 0
as an error condition and proceeding in that case.
Jeremy - please check!
Michael
(cherry picked from commit 736bdf15d934028b579a02dc411aed6c14a437f3)
|
|
|
|
|
|
|
| |
scan_directory).
Michael
(cherry picked from commit 06304f3c5f538c75bfc63c7abc1457d2b4dc0f0b)
|
|
|
|
|
|
| |
I think chain_reply() is one of the most tricky parts of Samba. This recursion
needs to go away, we need to sequentially walk the chain list.
(cherry picked from commit 34b56cb54e06f9b38d2bb0a626ec7b04030fc4fa)
|
|
|
|
|
|
| |
Untested code is broken code.... Test follows later, it's quite an intrusive
change to libsmb/
(cherry picked from commit 2abeea64e15f0e8e8c413744de9194bdcedd6f16)
|
|
|
|
|
|
|
|
|
|
| |
case files. Reported by Daniel Johnson <Progman2000@usa.net>.
The smb_set_file_time() call to set the filetimes is failing
because it's using the unmodified name passed in by the
client, not the modified name (matching case on the
disk) that comes out from create_file().
Jeremy.
(cherry picked from commit d54fe83b16c187847a975df373e73d56111d7f21)
|
|
|
|
|
|
|
| |
then don't allow create_file() to call down to
create_file_unixpath() with a stream name.
Jeremy.
(cherry picked from commit 7f749a10eff0bb469e6eb50b02cb60fd65c23f9e)
|
|
|
|
|
|
|
|
| |
"acl group control"
parameter and make it only apply to owning group. Also added man page fix.
Jeremy.
(cherry picked from commit 93e91e5364a7f131d988648cf5fe822a9bd68734)
|
|
|
|
|
| |
Jeremy.
(cherry picked from commit 8dd833b908cc8d4c0aa34cdece014d0e160aaf9e)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the "exists" parameter from create_msdfs_link
Jeremy, setting "exists" to True in _dfs_Add prevented the initial creation of
a new symlink for me, because the SMB_VFS_UNLINK failed. This also exists in
3.2. I only check it into 3.3 as I would like you to look at it first.
Thanks,
Volker
(cherry picked from commit 47e66814c176d597d9a3c165a7cfa6a5a2fd70be)
|