diff --git a/schemars/src/gen.rs b/schemars/src/gen.rs index fa7d162..4c4dd1d 100644 --- a/schemars/src/gen.rs +++ b/schemars/src/gen.rs @@ -149,7 +149,7 @@ impl SchemaGenerator { } pub fn get_schema_object(&self, mut schema: Schema) -> Result { - loop { + for _ in 0..100 { match schema { Schema::Object(obj) => return Ok(obj), Schema::Bool(true) => return Ok(Default::default()), @@ -189,5 +189,9 @@ impl SchemaGenerator { } } } + Err(JsonSchemaError::new( + "Failed to dereference schema after 100 iterations - reference may be cyclic.", + schema, + )) } }