From ffe6fceffaa24f8cefdae05bb91a8ba36bd4cce8 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Sun, 3 Jun 2018 10:01:33 -0500 Subject: [PATCH] dbJLink: Some extra checks at parse/init time --- src/ioc/db/dbJLink.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ioc/db/dbJLink.c b/src/ioc/db/dbJLink.c index 1c448dd4d..3acf75660 100644 --- a/src/ioc/db/dbJLink.c +++ b/src/ioc/db/dbJLink.c @@ -207,7 +207,8 @@ static int dbjl_start_map(void *ctx) { parser->dbfType = DBF_FWDLINK; result = jlif_continue; break; - case jlif_continue: + case jlif_key_stop: + case jlif_key_continue: break; default: errlogPrintf("dbJLinkInit: Bad return %d from '%s'::parse_start_map()\n", @@ -446,13 +447,14 @@ long dbJLinkParse(const char *json, size_t jlen, short dbfType, long dbJLinkInit(struct link *plink) { - jlink *pjlink; - assert(plink); - pjlink = plink->value.json.jlink; - if (pjlink) - plink->lset = pjlink->pif->get_lset(pjlink); + if (plink->type == JSON_LINK) { + jlink *pjlink = plink->value.json.jlink; + + if (pjlink) + plink->lset = pjlink->pif->get_lset(pjlink); + } dbLinkOpen(plink); return 0;