diff --git a/include/rapidjson/schema.h b/include/rapidjson/schema.h index b182aa27f..8497d3031 100644 --- a/include/rapidjson/schema.h +++ b/include/rapidjson/schema.h @@ -1473,7 +1473,7 @@ class GenericSchemaDocument { if (i > 0) { // Remote reference, resolve immediately if (remoteProvider_) { - if (const GenericSchemaDocument* remoteDocument = remoteProvider_->GetRemoteDocument(s, i - 1)) { + if (const GenericSchemaDocument* remoteDocument = remoteProvider_->GetRemoteDocument(s, i)) { PointerType pointer(&s[i], len - i, allocator_); if (pointer.IsValid()) { if (const SchemaType* sc = remoteDocument->GetSchema(pointer)) { diff --git a/test/unittest/schematest.cpp b/test/unittest/schematest.cpp index d75b1e593..6a8b685f4 100644 --- a/test/unittest/schematest.cpp +++ b/test/unittest/schematest.cpp @@ -1101,7 +1101,7 @@ class RemoteSchemaDocumentProvider : public IGenericRemoteSchemaDocumentProvider }; for (size_t i = 0; i < kCount; i++) - if (strncmp(uri, uris[i], length) == 0) + if (strncmp(uri, uris[i], length) == 0 && strlen(uris[i]) == length) return sd_[i]; return 0; }