registry...
authorStefan Metzmacher <metze@samba.org>
Tue, 5 Mar 2013 14:50:04 +0000 (15:50 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Oct 2016 12:52:16 +0000 (14:52 +0200)
source4/lib/registry/regf.idl
source4/lib/registry/tools/regtree.c
source4/lib/registry/util.c

index 064aaf09cee2f84f52872c922ffddd28913a96b0..ba45442c63771ae794d5c71fae54d05868e0bbcd 100644 (file)
@@ -111,7 +111,7 @@ interface regf
                uint32 next_offset;
                uint32 ref_cnt;
                uint32 rec_size;
-               uint8 sec_desc[rec_size]; 
+               uint8 sec_desc[rec_size-4];
        };
 
        [noprint] struct lh_hash {
index 56f38e7d4bace04294e65a2b2667a02cb63ae650..c4ffe0d9a406421ee2232378d0be279d0a166c82 100644 (file)
@@ -93,8 +93,10 @@ static void print_tree(unsigned int level, struct registry_key *p,
        }
 
        mem_ctx = talloc_init("sec_desc");
-       if (!W_ERROR_IS_OK(reg_get_sec_desc(mem_ctx, p, &sec_desc))) {
-               DEBUG(0, ("Error getting security descriptor\n"));
+       error = reg_get_sec_desc(mem_ctx, p, &sec_desc);
+       if (!W_ERROR_IS_OK(error)) {
+               DEBUG(0, ("Error getting security descriptor: - %s\n",
+                       win_errstr(error)));
        }
        talloc_free(mem_ctx);
 }
index 1197adba7f15fdad160d2e4669419063f48cd99a..7681f0ae287c6f127f74ce44edefa8ad903d9512 100644 (file)
@@ -41,13 +41,14 @@ _PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type,
                                              (void **)&ret, &converted_size);
                        break;
                case REG_DWORD:
+                       ret = talloc_asprintf(mem_ctx, "0x%8.8x",
+                                             RIVAL(data.data, 0));
+                       break;
                case REG_DWORD_BIG_ENDIAN:
-                       SMB_ASSERT(data.length == sizeof(uint32_t));
                        ret = talloc_asprintf(mem_ctx, "0x%8.8x",
                                              IVAL(data.data, 0));
                        break;
                case REG_QWORD:
-                       SMB_ASSERT(data.length == sizeof(uint64_t));
                        ret = talloc_asprintf(mem_ctx, "0x%16.16llx",
                                              (long long)BVAL(data.data, 0));
                        break;