소스 검색

Check for empty data in more cases.

Andrew Walbran 2 년 전
부모
커밋
daac39791b
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      src/device/socket/vsock.rs

+ 3 - 0
src/device/socket/vsock.rs

@@ -397,9 +397,11 @@ impl<H: Hal, T: Transport> VirtIOSocket<H, T> {
 
             match op {
                 VirtioVsockOp::Request => {
+                    header.check_data_is_empty()?;
                     // TODO: Send a Rst, or support listening.
                 }
                 VirtioVsockOp::Response => {
+                    header.check_data_is_empty()?;
                     return Ok(Some(VsockEvent {
                         source: connection_info.dst,
                         destination: VsockAddr {
@@ -456,6 +458,7 @@ impl<H: Hal, T: Transport> VirtIOSocket<H, T> {
                     }));
                 }
                 VirtioVsockOp::CreditRequest => {
+                    header.check_data_is_empty()?;
                     // TODO: Send a credit update.
                 }
                 VirtioVsockOp::Invalid => {