diff --git a/serde/src/de/impls.rs b/serde/src/de/impls.rs index 1ad97538..6a8c1a77 100644 --- a/serde/src/de/impls.rs +++ b/serde/src/de/impls.rs @@ -315,8 +315,7 @@ impl Deserialize for CString { fn deserialize(deserializer: D) -> Result where D: Deserializer { - let mut v: Vec = try!(Deserialize::deserialize(deserializer)); - v.pop(); // cut trailing NULL, because CString::new adds it + let v: Vec = try!(Deserialize::deserialize(deserializer)); CString::new(v) .map_err(|e| Error::custom(format!("unexpected NULL at byte {}", e.nul_position()))) } diff --git a/serde/src/ser/impls.rs b/serde/src/ser/impls.rs index 32eb716f..7d44ab34 100644 --- a/serde/src/ser/impls.rs +++ b/serde/src/ser/impls.rs @@ -106,7 +106,7 @@ impl Serialize for CStr { fn serialize(&self, serializer: S) -> Result 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(&self, serializer: S) -> Result where S: Serializer { - (self.to_bytes_with_nul()).serialize(serializer) + self.to_bytes().serialize(serializer) } }