Mercurial > illumos > illumos-gate
changeset 11059:d7f549e03f90
6900315 Copying files over CIFS may lead to data corruption
author | jose borrego <Jose.Borrego@Sun.COM> |
---|---|
date | Thu, 12 Nov 2009 15:48:02 -0700 |
parents | abfa2ec42964 |
children | 40daac51fc0c |
files | usr/src/uts/common/fs/smbsrv/smb_mbuf_marshaling.c |
diffstat | 1 files changed, 4 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/fs/smbsrv/smb_mbuf_marshaling.c Thu Nov 12 16:01:54 2009 +0100 +++ b/usr/src/uts/common/fs/smbsrv/smb_mbuf_marshaling.c Thu Nov 12 15:48:02 2009 -0700 @@ -1350,7 +1350,7 @@ * request) this function is called with a residual count of zero * bytes. */ - if (bytes) { + if (bytes != 0) { iov = uio->uio_iov; uio->uio_segflg = UIO_SYSSPACE; @@ -1373,7 +1373,8 @@ if (remainder >= bytes) { iov[i].iov_len = bytes; mbc->chain_offset += bytes; - break; + uio->uio_iovcnt = i + 1; + return (0); } iov[i].iov_len = remainder; mbc->chain_offset += remainder; @@ -1381,10 +1382,7 @@ m = m->m_next; offset = 0; } - if (i == uio->uio_iovcnt) { - return (DECODE_NO_MORE_DATA); - } - uio->uio_iovcnt = i; + return (DECODE_NO_MORE_DATA); } return (0); }