From c60c5ebb910a77f6f3f345093794637714eb66e2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 11 Apr 2004 16:37:06 +0000 Subject: r166: Fix enumerating values in nt4 backend (This used to be commit 1a7de762c60177b6e250f81cdeb3466fce148bff) --- source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source4/lib/registry/reg_backend_nt4') diff --git a/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c b/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c index 9d90523a75..a7e5051ce4 100644 --- a/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c +++ b/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c @@ -1697,12 +1697,16 @@ static WERROR nt_value_by_index(REG_KEY *k, int n, REG_VAL **value) { VL_TYPE *vl; int val_off, vk_off; + int val_count; VK_HDR *vk_hdr; REGF *regf = k->handle->backend_data; NK_HDR *nk_hdr = k->backend_data; + val_count = IVAL(&nk_hdr->val_cnt,0); val_off = IVAL(&nk_hdr->val_off,0); vl = (VL_TYPE *)LOCN(regf->base, val_off); DEBUG(2, ("Val List Offset: %0X\n", val_off)); + if(n < 0) return WERR_INVALID_PARAM; + if(n >= val_count) return WERR_NO_MORE_ITEMS; vk_off = IVAL(&vl[n],0); vk_hdr = (VK_HDR *)LOCN(regf->base, vk_off); -- cgit