فهرست منبع

Merge pull request #12 from 4e554c4c/master

Fix #11:  BootLoaderNameTag returning null char
Philipp Oppermann 8 سال پیش
والد
کامیت
26d0557e96
1فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 6 1
      src/boot_loader_name.rs

+ 6 - 1
src/boot_loader_name.rs

@@ -9,6 +9,11 @@ pub struct BootLoaderNameTag {
 
 impl BootLoaderNameTag {
     pub fn name(&self) -> &str {
-        unsafe { ::core::str::from_utf8_unchecked(::core::slice::from_raw_parts((&self.string) as *const u8, self.size as usize - 8)) }
+        use core::{mem,str,slice};
+        unsafe {
+            let strlen = self.size as usize - mem::size_of::<BootLoaderNameTag>();
+            str::from_utf8_unchecked(
+                slice::from_raw_parts((&self.string) as *const u8, strlen))
+        }
     }
 }