The branch, v3-6-test has been updated
       via  2c029ea s3-spoolss: make sure to exit early and with the 
appropriate error code in _spoolss_GetPrinterDriver2.
       via  742fe0a spoolss: use the correct flags for spoolss_PrinterInfo1 
struct.
       via  1dcc97d s3-printing: remove unused old structs.
       via  84e6075 samr: add three new ACB flags to IDL.
       via  f3f9dfe s3-spoolss: Fix _spoolss_EnumPrintProcDataTypes error 
handling (cherry picked from commit 77d4c280323ffc9f5f5f17023c90d0a904e14126)
       via  02b14b6 s3-spoolss: Fix _spoolss_EnumPrintProcessors error handling 
(cherry picked from commit 2921888a0808efbe765e3f52a83a91c2e03a44a6)
      from  12f6df2 s4-smbtorture: add new EnumPrinters test to test 
printername/servername behaviour in EnumPrinter and GetPrinter calls.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 2c029eab80639452cab578db7a184d3958ed8125
Author: Günther Deschner <[email protected]>
Date:   Thu Sep 30 02:28:41 2010 +0200

    s3-spoolss: make sure to exit early and with the appropriate error code in
    _spoolss_GetPrinterDriver2.
    
    Guenther
    (cherry picked from commit c82d6c0b96817129ab6fa23ef8f5d421fd6c7001)

commit 742fe0ae92562740d088759694c347942dc6fe2e
Author: Günther Deschner <[email protected]>
Date:   Thu Sep 30 02:05:36 2010 +0200

    spoolss: use the correct flags for spoolss_PrinterInfo1 struct.
    
    Guenther
    (cherry picked from commit 575ae3ed728974236512b029f8217d99c6fc8526)

commit 1dcc97d3cad95f58c9458ffaa2d46438711944aa
Author: Günther Deschner <[email protected]>
Date:   Tue Sep 28 05:39:42 2010 +0200

    s3-printing: remove unused old structs.
    
    Guenther
    (cherry picked from commit 314d738f907958a86e2638689f5c45f3b931047e)

commit 84e6075f97c21f9561850eb37b1c863dedf6f69d
Author: Günther Deschner <[email protected]>
Date:   Tue Sep 28 01:10:57 2010 +0200

    samr: add three new ACB flags to IDL.
    
    Guenther
    (cherry picked from commit 48adfb264f0a8772ac04fc51af1c39460c011acb)

commit f3f9dfef45917bd6df39d58475c3a28a59a75640
Author: Günther Deschner <[email protected]>
Date:   Tue Sep 28 00:10:54 2010 +0200

    s3-spoolss: Fix _spoolss_EnumPrintProcDataTypes error handling
    (cherry picked from commit 77d4c280323ffc9f5f5f17023c90d0a904e14126)

commit 02b14b60e8842e00c9ed79fb9cb4055e95ecd6d8
Author: Günther Deschner <[email protected]>
Date:   Tue Sep 28 00:10:17 2010 +0200

    s3-spoolss: Fix _spoolss_EnumPrintProcessors error handling
    (cherry picked from commit 2921888a0808efbe765e3f52a83a91c2e03a44a6)

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

Summary of changes:
 librpc/idl/samr.idl                 |    5 ++-
 librpc/idl/spoolss.idl              |    2 +-
 source3/include/nt_printing.h       |   60 -----------------------------------
 source3/rpc_server/srv_spoolss_nt.c |   13 +++++++
 4 files changed, 18 insertions(+), 62 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/samr.idl b/librpc/idl/samr.idl
index d977ddd..f54d626 100644
--- a/librpc/idl/samr.idl
+++ b/librpc/idl/samr.idl
@@ -44,7 +44,10 @@ import "misc.idl", "lsa.idl", "security.idl";
                ACB_USE_DES_KEY_ONLY            = 0x00008000,  /* 1 = Use DES 
key only */
                ACB_DONT_REQUIRE_PREAUTH        = 0x00010000,  /* 1 = Preauth 
not required */
                ACB_PW_EXPIRED                  = 0x00020000,  /* 1 = Password 
Expired */
-               ACB_NO_AUTH_DATA_REQD           = 0x00080000   /* 1 = No 
authorization data required */
+               ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = 0x00040000,
+               ACB_NO_AUTH_DATA_REQD           = 0x00080000,  /* 1 = No 
authorization data required */
+               ACB_PARTIAL_SECRETS_ACCOUNT     = 0x00100000,
+               ACB_USE_AES_KEYS                = 0x00200000
        } samr_AcctFlags;
 
        /* SAM server specific access rights */
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index f1b8e96..a957a54 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -766,7 +766,7 @@ cpp_quote("#define spoolss_security_descriptor 
security_descriptor")
        } spoolss_PrinterAttributes;
 
        typedef [public,gensize] struct {
-               spoolss_PrinterAttributes flags;
+               spoolss_EnumPrinterFlags flags;
                [relative] nstring *description;
                [relative] nstring *name;
                [relative] nstring *comment;
diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h
index 199236b..74b059f 100644
--- a/source3/include/nt_printing.h
+++ b/source3/include/nt_printing.h
@@ -25,66 +25,6 @@
 #include "client.h"
 #include "../librpc/gen_ndr/srv_spoolss.h"
 
-/* container for a single registry key */
-
-typedef struct {
-       char                    *name;
-       struct regval_ctr       *values;
-} NT_PRINTER_KEY;
-
-/* container for all printer data */
-
-typedef struct {
-       int             num_keys;
-       NT_PRINTER_KEY  *keys;
-} NT_PRINTER_DATA;
-
-typedef struct nt_printer_info_level_2
-{
-       uint32 attributes;
-       uint32 priority;
-       uint32 default_priority;
-       uint32 starttime;
-       uint32 untiltime;
-       uint32 status;
-       uint32 cjobs;
-       uint32 averageppm;
-       fstring servername;
-       fstring printername;
-       fstring sharename;
-       fstring portname;
-       fstring drivername;
-       char comment[1024];
-       fstring location;
-       struct spoolss_DeviceMode *devmode;
-       fstring sepfile;
-       fstring printprocessor;
-       fstring datatype;
-       fstring parameters;
-       NT_PRINTER_DATA *data;
-       struct sec_desc_buf *secdesc_buf;
-       uint32 changeid;
-       uint32 c_setprinter;
-       uint32 setuptime;       
-} NT_PRINTER_INFO_LEVEL_2;
-
-typedef struct nt_printer_info_level
-{
-       NT_PRINTER_INFO_LEVEL_2 *info_2;
-} NT_PRINTER_INFO_LEVEL;
-
-typedef struct
-{
-       fstring name;
-       uint32 flag;
-       uint32 width;
-       uint32 length;
-       uint32 left;
-       uint32 top;
-       uint32 right;
-       uint32 bottom;
-} nt_forms_struct;
-
 #ifndef SAMBA_PRINTER_PORT_NAME
 #define SAMBA_PRINTER_PORT_NAME "Samba Printer Port"
 #endif
diff --git a/source3/rpc_server/srv_spoolss_nt.c 
b/source3/rpc_server/srv_spoolss_nt.c
index 4837bb8..a44753a 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -5001,6 +5001,10 @@ static WERROR 
construct_printer_driver_info_level(TALLOC_CTX *mem_ctx,
        struct spoolss_DriverInfo8 *driver;
        WERROR result;
 
+       if (level == 101) {
+               return WERR_UNKNOWN_LEVEL;
+       }
+
        result = winreg_get_printer(mem_ctx,
                                    server_info,
                                    servername,
@@ -8130,6 +8134,10 @@ WERROR _spoolss_EnumPrintProcessors(struct pipes_struct 
*p,
        *r->out.needed = 0;
        *r->out.info = NULL;
 
+       if (!get_short_archi(r->in.environment)) {
+               return WERR_INVALID_ENVIRONMENT;
+       }
+
        switch (r->in.level) {
        case 1:
                result = enumprintprocessors_level_1(p->mem_ctx, r->out.info,
@@ -8221,6 +8229,11 @@ WERROR _spoolss_EnumPrintProcDataTypes(struct 
pipes_struct *p,
        *r->out.needed = 0;
        *r->out.info = NULL;
 
+       if (r->in.print_processor_name == NULL ||
+           !strequal(r->in.print_processor_name, "winprint")) {
+               return WERR_UNKNOWN_PRINTPROCESSOR;
+       }
+
        switch (r->in.level) {
        case 1:
                result = enumprintprocdatatypes_level_1(p->mem_ctx, r->out.info,


-- 
Samba Shared Repository

Reply via email to