s3-spoolss: fix _spoolss_EnumPrinterDataEx after idl
authorGünther Deschner <gd@samba.org>
Thu, 4 Mar 2010 15:47:33 +0000 (16:47 +0100)
committerKarolin Seeger <kseeger@samba.org>
Thu, 11 Mar 2010 09:31:28 +0000 (10:31 +0100)
Guenther
(cherry picked from commit 55326549852a3ab1114a8cb1536578ae02183eb8)

source3/rpc_server/srv_spoolss_nt.c

index 052e4064596f2644c3622fb669475eece6e9f9f4..5eaa51c3cb830c159db90548403c339736b96c98 100644 (file)
@@ -9400,9 +9400,7 @@ static WERROR registry_value_to_printer_enum_value(TALLOC_CTX *mem_ctx,
                                                   REGISTRY_VALUE *v,
                                                   struct spoolss_PrinterEnumValues *r)
 {
-       WERROR result;
-
-       r->data = TALLOC_ZERO_P(mem_ctx, union spoolss_PrinterData);
+       r->data = TALLOC_ZERO_P(mem_ctx, DATA_BLOB);
        W_ERROR_HAVE_NO_MEMORY(r->data);
 
        r->value_name   = talloc_strdup(mem_ctx, regval_name(v));
@@ -9412,14 +9410,7 @@ static WERROR registry_value_to_printer_enum_value(TALLOC_CTX *mem_ctx,
        r->data_length  = regval_size(v);
 
        if (r->data_length) {
-               DATA_BLOB blob = data_blob_const(regval_data_p(v),
-                                                regval_size(v));
-               result = pull_spoolss_PrinterData(mem_ctx, &blob,
-                                                 r->data,
-                                                 r->type);
-               if (!W_ERROR_IS_OK(result)) {
-                       return result;
-               }
+               *r->data = data_blob_talloc(r->data, regval_data_p(v), regval_size(v));
        }
 
        return WERR_OK;