From 05dacf8af84b6f2e962535e21de09b68693bffeb Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 7 May 2021 14:56:54 +0200 Subject: MsgPack: Use the right pointer for "bin" keys --- libcrystfel/src/image-msgpack.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/libcrystfel/src/image-msgpack.c b/libcrystfel/src/image-msgpack.c index 3465cc71..827b7724 100644 --- a/libcrystfel/src/image-msgpack.c +++ b/libcrystfel/src/image-msgpack.c @@ -77,14 +77,28 @@ static msgpack_object *find_msgpack_kv(msgpack_object *obj, const char *key) if ( obj->type != MSGPACK_OBJECT_MAP ) return NULL; for ( i=0; ivia.map.size; i++ ) { - const char *kstr; - size_t klen; - if ( (obj->via.map.ptr[i].key.type != MSGPACK_OBJECT_STR) - && (obj->via.map.ptr[i].key.type != MSGPACK_OBJECT_BIN) ) continue; - kstr = obj->via.map.ptr[i].key.via.str.ptr; - klen = obj->via.map.ptr[i].key.via.str.size; - if ( strncmp(kstr, key, klen) == 0 ) { - return &obj->via.map.ptr[i].val; + + if ( obj->via.map.ptr[i].key.type == MSGPACK_OBJECT_STR ) { + + const char *kstr; + size_t klen; + + kstr = obj->via.map.ptr[i].key.via.str.ptr; + klen = obj->via.map.ptr[i].key.via.str.size; + if ( strncmp(kstr, key, klen) == 0 ) { + return &obj->via.map.ptr[i].val; + } + + } else if ( obj->via.map.ptr[i].key.type == MSGPACK_OBJECT_BIN ) { + + const char *kstr; + size_t klen; + + kstr = obj->via.map.ptr[i].key.via.bin.ptr; + klen = obj->via.map.ptr[i].key.via.bin.size; + if ( strncmp(kstr, key, klen) == 0 ) { + return &obj->via.map.ptr[i].val; + } } } return NULL; -- cgit v1.2.3