Skip to content

Commit 9399cea

Browse files
authored
fix(smith): properly return arbitrary::Error instead of panicking on NaN or Inf for floats (#1005)
1 parent 3c74918 commit 9399cea

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

crates/apollo-smith/src/response.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,10 @@ impl<'a, 'doc, 'schema> ResponseBuilder<'a, 'doc, 'schema> {
169169
Ok(Value::Number(random_int.into()))
170170
} else if scalar.name == "Float" {
171171
let random_float = self.u.arbitrary::<f64>()?;
172-
Ok(Value::Number(Number::from_f64(random_float).unwrap()))
172+
let Some(random_number) = Number::from_f64(random_float) else {
173+
return Err(arbitrary::Error::IncorrectFormat);
174+
};
175+
Ok(Value::Number(random_number))
173176
} else if scalar.name == "String" {
174177
let random_string = self.u.arbitrary::<String>()?;
175178
Ok(Value::String(random_string.into()))

0 commit comments

Comments
 (0)