Don't serialize trailing NULL

This commit is contained in:
Jon Gjengset 2017-03-03 17:14:28 -05:00
parent 857974ab8a
commit 9f83164c40
No known key found for this signature in database
GPG Key ID: D64AC9D67176DC71
2 changed files with 3 additions and 4 deletions

View File

@ -315,8 +315,7 @@ impl Deserialize for CString {
fn deserialize<D>(deserializer: D) -> Result<CString, D::Error>
where D: Deserializer
{
let mut v: Vec<u8> = try!(Deserialize::deserialize(deserializer));
v.pop(); // cut trailing NULL, because CString::new adds it
let v: Vec<u8> = try!(Deserialize::deserialize(deserializer));
CString::new(v)
.map_err(|e| Error::custom(format!("unexpected NULL at byte {}", e.nul_position())))
}

View File

@ -106,7 +106,7 @@ impl Serialize for CStr {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer
{
(self.to_bytes_with_nul()).serialize(serializer)
self.to_bytes().serialize(serializer)
}
}
@ -116,7 +116,7 @@ impl Serialize for CString {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer
{
(self.to_bytes_with_nul()).serialize(serializer)
self.to_bytes().serialize(serializer)
}
}