Преглед на файлове

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)
     }