The branch, master has been updated
       via  aadd293... s3-registry: support REG_DWORD_BIG_ENDIAN.
       via  fb16ac2... s3-registry: support REG_QWORD.
      from  026fae8... s3-utils: remove trailing whitespace from profiles 
utility.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit aadd29356ee5785d11ebe072459b7dd3747ed9ed
Author: Günther Deschner <[email protected]>
Date:   Thu May 20 18:32:37 2010 +0200

    s3-registry: support REG_DWORD_BIG_ENDIAN.
    
    Just treat it as a REG_DWORD for now. Long term all these checks will need 
to
    pass away, once we get a real registry...
    
    Guenther

commit fb16ac229beb9ce9d37b49ab6cb630d60c95ee9e
Author: Günther Deschner <[email protected]>
Date:   Wed Sep 2 21:25:32 2009 +0200

    s3-registry: support REG_QWORD.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/lib/util_reg_api.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/util_reg_api.c b/source3/lib/util_reg_api.c
index 1616d24..347c5d6 100644
--- a/source3/lib/util_reg_api.c
+++ b/source3/lib/util_reg_api.c
@@ -39,12 +39,20 @@ WERROR registry_pull_value(TALLOC_CTX *mem_ctx,
 
        switch (type) {
        case REG_DWORD:
+       case REG_DWORD_BIG_ENDIAN:
                if ((size != 4) || (length != 4)) {
                        err = WERR_INVALID_PARAM;
                        goto error;
                }
                value->v.dword = IVAL(data, 0);
                break;
+       case REG_QWORD:
+               if ((size != 8) || (length != 8)) {
+                       err = WERR_INVALID_PARAM;
+                       goto error;
+               }
+               value->v.qword = BVAL(data, 0);
+               break;
        case REG_SZ:
        case REG_EXPAND_SZ:
        {
@@ -84,7 +92,6 @@ WERROR registry_pull_value(TALLOC_CTX *mem_ctx,
                        memcpy((void *)tmp, (const void *)data, length);
                        tmp[num_ucs2] = 0;
                }
-
                if (length + 2 < length) {
                        /* Integer wrap. */
                        SAFE_FREE(tmp);
@@ -145,7 +152,8 @@ WERROR registry_push_value(TALLOC_CTX *mem_ctx,
                           DATA_BLOB *presult)
 {
        switch (value->type) {
-       case REG_DWORD: {
+       case REG_DWORD:
+       case REG_DWORD_BIG_ENDIAN: {
                char buf[4];
                SIVAL(buf, 0, value->v.dword);
                *presult = data_blob_talloc(mem_ctx, (void *)buf, 4);
@@ -154,6 +162,15 @@ WERROR registry_push_value(TALLOC_CTX *mem_ctx,
                }
                break;
        }
+       case REG_QWORD: {
+               char buf[8];
+               SBVAL(buf, 0, value->v.qword);
+               *presult = data_blob_talloc(mem_ctx, (void *)buf, 8);
+               if (presult->data == NULL) {
+                       return WERR_NOMEM;
+               }
+               break;
+       }
        case REG_SZ:
        case REG_EXPAND_SZ: {
                if (!push_reg_sz(mem_ctx, presult, value->v.sz.str))


-- 
Samba Shared Repository

Reply via email to