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)