mirror of
https://github.com/samba-team/samba.git
synced 2025-07-31 20:22:15 +03:00
r15911: Make us survive rpc-authcontext committed next
(This used to be commit c24bfdce62
)
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
c334de0435
commit
263b01ecb9
@ -291,6 +291,12 @@ static int api_fd_reply(connection_struct *conn,uint16 vuid,char *outbuf,
|
||||
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
|
||||
}
|
||||
|
||||
if (vuid != p->vuid) {
|
||||
DEBUG(1, ("Got pipe request (pnum %x) using invalid VUID %d, "
|
||||
"expected %d\n", pnum, vuid, p->vuid));
|
||||
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
|
||||
}
|
||||
|
||||
DEBUG(3,("Got API command 0x%x on pipe \"%s\" (pnum %x)\n", subcommand, p->name, pnum));
|
||||
|
||||
/* record maximum data length that can be transmitted in an SMBtrans */
|
||||
|
@ -121,6 +121,7 @@ int reply_open_pipe_and_X(connection_struct *conn,
|
||||
int reply_pipe_write(char *inbuf,char *outbuf,int length,int dum_bufsize)
|
||||
{
|
||||
smb_np_struct *p = get_rpc_pipe_p(inbuf,smb_vwv0);
|
||||
uint16 vuid = SVAL(inbuf,smb_uid);
|
||||
size_t numtowrite = SVAL(inbuf,smb_vwv1);
|
||||
int nwritten;
|
||||
int outsize;
|
||||
@ -130,6 +131,10 @@ int reply_pipe_write(char *inbuf,char *outbuf,int length,int dum_bufsize)
|
||||
return(ERROR_DOS(ERRDOS,ERRbadfid));
|
||||
}
|
||||
|
||||
if (p->vuid != vuid) {
|
||||
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
|
||||
}
|
||||
|
||||
data = smb_buf(inbuf) + 3;
|
||||
|
||||
if (numtowrite == 0) {
|
||||
@ -161,6 +166,7 @@ int reply_pipe_write(char *inbuf,char *outbuf,int length,int dum_bufsize)
|
||||
int reply_pipe_write_and_X(char *inbuf,char *outbuf,int length,int bufsize)
|
||||
{
|
||||
smb_np_struct *p = get_rpc_pipe_p(inbuf,smb_vwv2);
|
||||
uint16 vuid = SVAL(inbuf,smb_uid);
|
||||
size_t numtowrite = SVAL(inbuf,smb_vwv10);
|
||||
int nwritten = -1;
|
||||
int smb_doff = SVAL(inbuf, smb_vwv11);
|
||||
@ -172,6 +178,10 @@ int reply_pipe_write_and_X(char *inbuf,char *outbuf,int length,int bufsize)
|
||||
return(ERROR_DOS(ERRDOS,ERRbadfid));
|
||||
}
|
||||
|
||||
if (p->vuid != vuid) {
|
||||
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
|
||||
}
|
||||
|
||||
data = smb_base(inbuf) + smb_doff;
|
||||
|
||||
if (numtowrite == 0) {
|
||||
|
Reference in New Issue
Block a user