Signed-off-by: Gregor Beck <gbeck@sernet.de>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
/* operation number retrieved from the rpc header */
uint16_t opnum;
+ /* rpc header information to check fragments for consistency */
+ struct dcerpc_sec_vt_header2 header2;
+
/* private data for the interface implementation */
void *private_data;
{
NTSTATUS status;
DATA_BLOB data;
+ struct dcerpc_sec_vt_header2 hdr2;
if (!p->pipe_bound) {
DEBUG(0,("process_request_pdu: rpc request with no bind.\n"));
return False;
}
+ hdr2 = dcerpc_sec_vt_header2_from_ncacn_packet(pkt);
+ if (pkt->pfc_flags & DCERPC_PFC_FLAG_FIRST) {
+ p->header2 = hdr2;
+ } else {
+ if (!dcerpc_sec_vt_header2_equal(&hdr2, &p->header2)) {
+ set_incoming_fault(p);
+ return false;
+ }
+ }
+
/* Store the opnum */
p->opnum = pkt->u.request.opnum;