소스 검색

Data length field of 0 is invalid for ndisc option

Thibaut Vandervelden 2 년 전
부모
커밋
7f73afa641
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      src/wire/ndiscoption.rs

+ 6 - 0
src/wire/ndiscoption.rs

@@ -158,6 +158,12 @@ impl<T: AsRef<[u8]>> NdiscOption<T> {
     pub fn new_checked(buffer: T) -> Result<NdiscOption<T>> {
         let opt = Self::new_unchecked(buffer);
         opt.check_len()?;
+
+        // A data length field of 0 is invalid.
+        if opt.data_len() == 0 {
+            return Err(Error);
+        }
+
         Ok(opt)
     }