mirror of
https://github.com/samba-team/samba.git
synced 2025-08-04 08:22:08 +03:00
loadparm.c: Added fix for veto oplock files bug from Charles Hoch <hoch@hplcgh.hpl.hp.com>
server.c, util.c: Added fix for oplock break requests blocking due to server being
blocked in read call. Bug found by Charles Hoch <hoch@hplcgh.hpl.hp.com>.
Jeremy.
(This used to be commit 209f894fdb
)
This commit is contained in:
@ -2268,10 +2268,7 @@ int read_smb_length(int fd,char *inbuf,int timeout)
|
||||
msg_type = CVAL(buffer,0);
|
||||
|
||||
if (msg_type == 0x85)
|
||||
{
|
||||
DEBUG(5,("Got keepalive packet\n"));
|
||||
ok = False;
|
||||
}
|
||||
DEBUG(5,("Got keepalive packet\n"));
|
||||
}
|
||||
|
||||
DEBUG(10,("got smb length of %d\n",len));
|
||||
@ -2295,7 +2292,7 @@ BOOL receive_smb(int fd,char *buffer, int timeout)
|
||||
bzero(buffer,smb_size + 100);
|
||||
|
||||
len = read_smb_length(fd,buffer,timeout);
|
||||
if (len == -1)
|
||||
if (len < 0)
|
||||
return(False);
|
||||
|
||||
if (len > BUFFER_SIZE) {
|
||||
@ -2304,12 +2301,13 @@ BOOL receive_smb(int fd,char *buffer, int timeout)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
ret = read_data(fd,buffer+4,len);
|
||||
if (ret != len) {
|
||||
smb_read_error = READ_ERROR;
|
||||
return False;
|
||||
if(len > 0) {
|
||||
ret = read_data(fd,buffer+4,len);
|
||||
if (ret != len) {
|
||||
smb_read_error = READ_ERROR;
|
||||
return False;
|
||||
}
|
||||
}
|
||||
|
||||
return(True);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user