mirror of
https://github.com/samba-team/samba.git
synced 2025-09-14 21:44:19 +03:00
s3: Use "goto out;" in reply_write_and_X
This commit is contained in:
@@ -4494,8 +4494,7 @@ void reply_write_and_X(struct smb_request *req)
|
|||||||
|
|
||||||
if ((req->wct != 12) && (req->wct != 14)) {
|
if ((req->wct != 12) && (req->wct != 14)) {
|
||||||
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
numtowrite = SVAL(req->vwv+10, 0);
|
numtowrite = SVAL(req->vwv+10, 0);
|
||||||
@@ -4512,20 +4511,17 @@ void reply_write_and_X(struct smb_request *req)
|
|||||||
/* Can't do a recvfile write on IPC$ */
|
/* Can't do a recvfile write on IPC$ */
|
||||||
if (IS_IPC(conn)) {
|
if (IS_IPC(conn)) {
|
||||||
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (numtowrite != req->unread_bytes) {
|
if (numtowrite != req->unread_bytes) {
|
||||||
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (smb_doff > smblen || smb_doff + numtowrite < numtowrite ||
|
if (smb_doff > smblen || smb_doff + numtowrite < numtowrite ||
|
||||||
smb_doff + numtowrite > smblen) {
|
smb_doff + numtowrite > smblen) {
|
||||||
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4533,12 +4529,10 @@ void reply_write_and_X(struct smb_request *req)
|
|||||||
if (IS_IPC(conn)) {
|
if (IS_IPC(conn)) {
|
||||||
if (req->unread_bytes) {
|
if (req->unread_bytes) {
|
||||||
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
reply_pipe_write_and_X(req);
|
reply_pipe_write_and_X(req);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fsp = file_fsp(req, SVAL(req->vwv+2, 0));
|
fsp = file_fsp(req, SVAL(req->vwv+2, 0));
|
||||||
@@ -4546,14 +4540,12 @@ void reply_write_and_X(struct smb_request *req)
|
|||||||
write_through = BITSETW(req->vwv+7,0);
|
write_through = BITSETW(req->vwv+7,0);
|
||||||
|
|
||||||
if (!check_fsp(conn, req, fsp)) {
|
if (!check_fsp(conn, req, fsp)) {
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CHECK_WRITE(fsp)) {
|
if (!CHECK_WRITE(fsp)) {
|
||||||
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
|
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data = smb_base(req->inbuf) + smb_doff;
|
data = smb_base(req->inbuf) + smb_doff;
|
||||||
@@ -4576,8 +4568,7 @@ void reply_write_and_X(struct smb_request *req)
|
|||||||
"used and we don't support 64 bit offsets.\n",
|
"used and we don't support 64 bit offsets.\n",
|
||||||
(unsigned int)IVAL(req->vwv+12, 0) ));
|
(unsigned int)IVAL(req->vwv+12, 0) ));
|
||||||
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
|
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
|
||||||
END_PROFILE(SMBwriteX);
|
goto out;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* LARGE_SMB_OFF_T */
|
#endif /* LARGE_SMB_OFF_T */
|
||||||
|
Reference in New Issue
Block a user