hdw);
                hdw->ctl_write_urb->actual_length = 0;
                hdw->ctl_write_pend_flag = !0;
+               if (usb_urb_ep_type_check(hdw->ctl_write_urb)) {
+                       pvr2_trace(
+                               PVR2_TRACE_ERROR_LEGS,
+                               "Invalid write control endpoint");
+                       return -EINVAL;
+               }
                status = usb_submit_urb(hdw->ctl_write_urb,GFP_KERNEL);
                if (status < 0) {
                        pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                                  hdw);
                hdw->ctl_read_urb->actual_length = 0;
                hdw->ctl_read_pend_flag = !0;
+               if (usb_urb_ep_type_check(hdw->ctl_read_urb)) {
+                       pvr2_trace(
+                               PVR2_TRACE_ERROR_LEGS,
+                               "Invalid read control endpoint");
+                       return -EINVAL;
+               }
                status = usb_submit_urb(hdw->ctl_read_urb,GFP_KERNEL);
                if (status < 0) {
                        pvr2_trace(PVR2_TRACE_ERROR_LEGS,