File tree 1 file changed +4
-2
lines changed
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -613,7 +613,8 @@ impl CString {
613
613
#[ inline]
614
614
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
615
615
pub fn as_bytes ( & self ) -> & [ u8 ] {
616
- & self . inner [ ..self . inner . len ( ) - 1 ]
616
+ // SAFETY: CString has a length at least 1
617
+ unsafe { self . inner . get_unchecked ( ..self . inner . len ( ) - 1 ) }
617
618
}
618
619
619
620
/// Equivalent to [`CString::as_bytes()`] except that the
@@ -1322,7 +1323,8 @@ impl CStr {
1322
1323
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1323
1324
pub fn to_bytes ( & self ) -> & [ u8 ] {
1324
1325
let bytes = self . to_bytes_with_nul ( ) ;
1325
- & bytes[ ..bytes. len ( ) - 1 ]
1326
+ // SAFETY: to_bytes_with_nul returns slice with length at least 1
1327
+ unsafe { bytes. get_unchecked ( ..bytes. len ( ) - 1 ) }
1326
1328
}
1327
1329
1328
1330
/// Converts this C string to a byte slice containing the trailing 0 byte.
You can’t perform that action at this time.
0 commit comments