summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Beckett <dave@dajobe.org>2017-04-16 23:17:03 +0100
committerDave Beckett <dave@dajobe.org>2017-04-16 23:17:03 +0100
commit482ecd1bb8f7daac4f79f84006b3fd046217a158 (patch)
tree1bbea7d8dcbb1d8e676216ec42b433fe2819e66c
parent590681e546cd9aa18d57dc2ea1858cb734a3863f (diff)
downloadraptor-482ecd1bb8f7daac4f79f84006b3fd046217a158.tar.gz
Make nsd compare methods handle NULLs
(raptor_nsd_compare, raptor_xml_writer_nsd_compare): Sort NULLs separate and avoid strcmp() where those are undefined.
-rw-r--r--src/raptor_xml.c6
-rw-r--r--src/raptor_xml_writer.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/src/raptor_xml.c b/src/raptor_xml.c
index 2b60a3ff..77644ca9 100644
--- a/src/raptor_xml.c
+++ b/src/raptor_xml.c
@@ -319,6 +319,12 @@ raptor_nsd_compare(const void *a, const void *b)
{
struct nsd* nsd_a = (struct nsd*)a;
struct nsd* nsd_b = (struct nsd*)b;
+
+ /* Sort NULLs earlier */
+ if(!nsd_a->declaration)
+ return -1;
+ else if(!nsd_b->declaration)
+ return 1;
return strcmp((const char*)nsd_a->declaration, (const char*)nsd_b->declaration);
}
diff --git a/src/raptor_xml_writer.c b/src/raptor_xml_writer.c
index 0d3a36a5..2f442ba8 100644
--- a/src/raptor_xml_writer.c
+++ b/src/raptor_xml_writer.c
@@ -164,6 +164,12 @@ raptor_xml_writer_nsd_compare(const void *a, const void *b)
{
struct nsd* nsd_a = (struct nsd*)a;
struct nsd* nsd_b = (struct nsd*)b;
+
+ /* Sort NULLs earlier */
+ if(!nsd_a->declaration)
+ return -1;
+ else if(!nsd_b->declaration)
+ return 1;
return strcmp((const char*)nsd_a->declaration, (const char*)nsd_b->declaration);
}