diff --git a/sqlx-postgres/src/types/bit_vec.rs b/sqlx-postgres/src/types/bit_vec.rs index 6b48c722d..299aaf828 100644 --- a/sqlx-postgres/src/types/bit_vec.rs +++ b/sqlx-postgres/src/types/bit_vec.rs @@ -8,6 +8,7 @@ use crate::{ use bit_vec::BitVec; use sqlx_core::bytes::Buf; use std::{io, mem}; +use crate::arguments::value_size_int4_checked; impl Type for BitVec { fn type_info() -> PgTypeInfo { @@ -31,7 +32,9 @@ impl PgHasArrayType for BitVec { impl Encode<'_, Postgres> for BitVec { fn encode_by_ref(&self, buf: &mut PgArgumentBuffer) -> Result { - buf.extend(&(self.len() as i32).to_be_bytes()); + let len = value_size_int4_checked(self.len())?; + + buf.extend(len.to_be_bytes()); buf.extend(self.to_bytes()); Ok(IsNull::No)