From f23350dac814fe04fd411c44b5a6dd1cd3d84993 Mon Sep 17 00:00:00 2001 From: Tpt Date: Tue, 14 Sep 2021 18:19:40 +0200 Subject: [PATCH] SPARQL XML results: do not panic on unknown variable --- lib/src/sparql/xml_results.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/src/sparql/xml_results.rs b/lib/src/sparql/xml_results.rs index adfea61a..6d1e3091 100644 --- a/lib/src/sparql/xml_results.rs +++ b/lib/src/sparql/xml_results.rs @@ -542,7 +542,13 @@ impl ResultsIterator { State::Result => return Ok(Some(new_bindings)), State::Binding => { if let Some(var) = ¤t_var { - new_bindings[self.mapping[var]] = term.take() + if let Some(var) = self.mapping.get(var) { + new_bindings[*var] = term.take() + } else { + return Err( + invalid_data_error(format!("The variable '{}' is used in a binding but not declared in the variables list", self.reader.decode(&var).map_err(map_xml_error)?)).into() + ); + } } else { return Err( invalid_data_error("No name found for tag").into()