}
c->state.send_credits = credits_granted;
-smb_direct_connection_debug_credits(c, __location__, __func__);
+ smb_direct_connection_debug_credits(c, __location__, __func__);
+
if (data_offset == 0) {
if (wc.byte_len != SMB_DIRECT_DATA_MIN_HDR_SIZE) {
status = NT_STATUS_INVALID_NETWORK_RESPONSE;
smb_direct_connection_disconnect(c, status);
return;
}
- goto try_again;
+ goto try_again;
+ //return;
+ }
+
+ if (data_offset != SMB_DIRECT_DATA_OFFSET) {
+ status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+ DEBUG(0,("%s:%s: ret[%d] errno[%d] status[%s]\n",
+ __location__, __FUNCTION__, ret, errno, nt_errstr(status)));
+ smb_direct_connection_disconnect(c, status);
return;
- } else if (data_offset == SMB_DIRECT_DATA_OFFSET) {
- if (io->data_length > (c->state.max_receive_size - data_offset)) {
- status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+
+ if (io->data_length > (c->state.max_receive_size - data_offset)) {
+ status = NT_STATUS_INVALID_NETWORK_RESPONSE;
DEBUG(0,("%s:%s: io->data_length[%u/0x%x] max_receive_size-data_offset[%u/0x%x] ret[%d] errno[%d] status[%s]\n",
__location__, __FUNCTION__,
(unsigned)io->data_length,
(unsigned)c->state.max_receive_size - data_offset,
(unsigned)c->state.max_receive_size - data_offset,
ret, errno, nt_errstr(status)));
- DEBUG(0,("%s:%s: ret[%d] errno[%d] status[%s]\n",
- __location__, __FUNCTION__, ret, errno, nt_errstr(status)));
- smb_direct_connection_disconnect(c, status);
- return;
- }
- } else {
- status = NT_STATUS_INVALID_NETWORK_RESPONSE;
DEBUG(0,("%s:%s: ret[%d] errno[%d] status[%s]\n",
- __location__, __FUNCTION__, ret, errno, nt_errstr(status)));
+ __location__, __FUNCTION__, ret, errno, nt_errstr(status)));
smb_direct_connection_disconnect(c, status);
return;
}