diff --git a/src/lib66/ss_resolve.c b/src/lib66/ss_resolve.c index df94c4861ac42be4ea0d3077e22db18be6c6e820..9f4130e0dc0205808d2cde93f1ebc4b2f48a31de 100644 --- a/src/lib66/ss_resolve.c +++ b/src/lib66/ss_resolve.c @@ -1658,15 +1658,17 @@ int ss_resolve_find_cdb(stralloc *result, cdb const *c,char const *key) if (!r) log_warnusys_return(LOG_EXIT_ZERO,"unknown cdb key: ",key) ; - if (!cdata.len) - log_warnusys_return(LOG_EXIT_ZERO,"empty value of cdb key: ",key) ; + char pack[cdata.len + 1] ; + memcpy(pack,cdata.s, cdata.len) ; + pack[cdata.len] = 0 ; - if (!auto_stra(result,cdata.s)) - log_warnusys_return(LOG_EXIT_LESSONE,"stralloc") ; + uint32_unpack_big(pack, &x) ; - uint32_unpack_big(cdata.s, &x) ; + if (!auto_stra(result,pack)) + log_warnusys_return(LOG_EXIT_LESSONE,"stralloc") ; return x ; + } int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name)