diff options
author | David Robillard <d@drobilla.net> | 2012-03-08 15:59:08 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-03-08 15:59:08 +0000 |
commit | 0046d61833ae1f6a7d5d4bff836d20ddbf571df9 (patch) | |
tree | fb3cd0aa6825a1033f6bfafa95e65a08694a2e6f /src | |
parent | 8be9efb931773da4afc90ddaa1776387a9cea630 (diff) | |
download | sord-0046d61833ae1f6a7d5d4bff836d20ddbf571df9.tar.gz sord-0046d61833ae1f6a7d5d4bff836d20ddbf571df9.tar.bz2 sord-0046d61833ae1f6a7d5d4bff836d20ddbf571df9.zip |
Refuse to intern relative URIs in sord_new_uri*().
Make sord_iter_get_node() tolerate a NULL iterator.
git-svn-id: http://svn.drobilla.net/sord/trunk@202 3d64ff67-21c5-427c-a301-fe4f08042e5a
Diffstat (limited to 'src')
-rw-r--r-- | src/sord.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -424,7 +424,7 @@ sord_iter_get(const SordIter* iter, SordQuad id) const SordNode* sord_iter_get_node(const SordIter* iter, SordQuadIndex index) { - return ((SordNode**)zix_tree_get(iter->cur))[index]; + return iter ? ((SordNode**)zix_tree_get(iter->cur))[index] : NULL; } bool @@ -958,6 +958,10 @@ static SordNode* sord_new_uri_counted(SordWorld* world, const uint8_t* str, size_t n_bytes, size_t n_chars, bool copy) { + if (!serd_uri_string_has_scheme(str)) { + return NULL; // Can't intern relative URIs + } + SordNode* node = sord_lookup_name(world, str); if (node) { if (!copy) { |