samba36: fix some security problems
[openwrt/openwrt.git] / package / network / services / samba36 / patches / 200-remove_printer_support.patch
index 19d357f32bd1873daadde0c017e55b352ff1b95d..90f13feb0da9c8d1f977b319b15461b999561aeb 100644 (file)
@@ -25,7 +25,7 @@
        dfs_commands,
 --- a/source3/printing/spoolssd.c
 +++ b/source3/printing/spoolssd.c
-@@ -153,6 +153,10 @@ void start_spoolssd(struct tevent_contex
+@@ -165,6 +165,10 @@ void start_spoolssd(struct tevent_contex
        NTSTATUS status;
        int ret;
  
@@ -38,7 +38,7 @@
        pid = sys_fork();
 --- a/source3/utils/net_rpc.c
 +++ b/source3/utils/net_rpc.c
-@@ -7798,6 +7798,10 @@ int net_rpc_printer(struct net_context *
+@@ -7841,6 +7841,10 @@ int net_rpc_printer(struct net_context *
                {NULL, NULL, 0, NULL, NULL}
        };
  
@@ -51,7 +51,7 @@
                        d_printf(_("Usage:\n"));
 --- a/source3/smbd/reply.c
 +++ b/source3/smbd/reply.c
-@@ -5196,7 +5196,11 @@ void reply_printopen(struct smb_request 
+@@ -5255,7 +5255,11 @@ void reply_printopen(struct smb_request
                return;
        }
  
@@ -64,7 +64,7 @@
                reply_nterror(req, NT_STATUS_ACCESS_DENIED);
                END_PROFILE(SMBsplopen);
                return;
-@@ -5302,7 +5306,10 @@ void reply_printqueue(struct smb_request
+@@ -5361,7 +5365,10 @@ void reply_printqueue(struct smb_request
           is really quite gross and only worked when there was only
           one printer - I think we should now only accept it if they
           get it right (tridge) */
@@ -78,7 +78,7 @@
                return;
 --- a/source3/smbd/lanman.c
 +++ b/source3/smbd/lanman.c
-@@ -784,6 +784,10 @@ static bool api_DosPrintQGetInfo(struct 
+@@ -784,6 +784,10 @@ static bool api_DosPrintQGetInfo(struct
        union spoolss_JobInfo *job_info = NULL;
        union spoolss_PrinterInfo printer_info;
  
        if (!param_format || !output_format1 || !p) {
                return False;
        }
-@@ -3350,6 +3358,10 @@ static bool api_RDosPrintJobDel(struct s
+@@ -3105,6 +3113,10 @@ static bool api_RDosPrintJobDel(struct s
        struct spoolss_DevmodeContainer devmode_ctr;
        enum spoolss_JobControl command;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -3483,6 +3495,10 @@ static bool api_WPrintQueueCtrl(struct s
+@@ -3238,6 +3250,10 @@ static bool api_WPrintQueueCtrl(struct s
        struct sec_desc_buf secdesc_ctr;
        enum spoolss_PrinterControl command;
  
        if (!str1 || !str2 || !QueueName) {
                return False;
        }
-@@ -3649,6 +3665,10 @@ static bool api_PrintJobInfo(struct smbd
+@@ -3404,6 +3420,10 @@ static bool api_PrintJobInfo(struct smbd
        union spoolss_JobInfo info;
        struct spoolss_SetJobInfo1 info1;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -4792,6 +4812,10 @@ static bool api_WPrintJobGetInfo(struct 
+@@ -4547,6 +4567,10 @@ static bool api_WPrintJobGetInfo(struct
        struct spoolss_DevmodeContainer devmode_ctr;
        union spoolss_JobInfo info;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -4930,6 +4954,10 @@ static bool api_WPrintJobEnumerate(struc
+@@ -4685,6 +4709,10 @@ static bool api_WPrintJobEnumerate(struc
        uint32_t count = 0;
        union spoolss_JobInfo *info;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -5135,6 +5163,10 @@ static bool api_WPrintDestGetInfo(struct
+@@ -4890,6 +4918,10 @@ static bool api_WPrintDestGetInfo(struct
        struct spoolss_DevmodeContainer devmode_ctr;
        union spoolss_PrinterInfo info;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -5271,6 +5303,10 @@ static bool api_WPrintDestEnum(struct sm
+@@ -5026,6 +5058,10 @@ static bool api_WPrintDestEnum(struct sm
        union spoolss_PrinterInfo *info;
        uint32_t count;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -5374,6 +5410,10 @@ static bool api_WPrintDriverEnum(struct 
+@@ -5129,6 +5165,10 @@ static bool api_WPrintDriverEnum(struct
        int succnt;
        struct pack_desc desc;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -5438,6 +5478,10 @@ static bool api_WPrintQProcEnum(struct s
+@@ -5193,6 +5233,10 @@ static bool api_WPrintQProcEnum(struct s
        int succnt;
        struct pack_desc desc;
  
        if (!str1 || !str2 || !p) {
                return False;
        }
-@@ -5502,6 +5546,10 @@ static bool api_WPrintPortEnum(struct sm
+@@ -5257,6 +5301,10 @@ static bool api_WPrintPortEnum(struct sm
        int succnt;
        struct pack_desc desc;
  
                rpc_winreg_shutdown();
 --- a/source3/smbd/open.c
 +++ b/source3/smbd/open.c
-@@ -1566,6 +1566,9 @@ static NTSTATUS open_file_ntcreate(conne
+@@ -1608,6 +1608,9 @@ static NTSTATUS open_file_ntcreate(conne
                 * Most of the passed parameters are ignored.
                 */
  
        }
 --- a/source3/smbd/process.c
 +++ b/source3/smbd/process.c
-@@ -2476,8 +2476,10 @@ static bool housekeeping_fn(const struct
+@@ -2423,8 +2423,10 @@ static bool housekeeping_fn(const struct
  
        change_to_root_user();
  
        check_reload(sconn, time_mono(NULL));
 --- a/source3/smbd/server.c
 +++ b/source3/smbd/server.c
-@@ -126,7 +126,9 @@ static void smb_pcap_updated(struct mess
+@@ -123,7 +123,9 @@ static void smb_pcap_updated(struct mess
  {
        struct tevent_context *ev_ctx =
                talloc_get_type_abort(private_data, struct tevent_context);
        DEBUG(10,("Got message saying pcap was updated. Reloading.\n"));
        change_to_root_user();
        reload_printers(ev_ctx, msg);
-@@ -1231,6 +1233,7 @@ extern void build_options(bool screen);
+@@ -1277,6 +1279,7 @@ extern void build_options(bool screen);
         * The print backend init also migrates the printing tdb's,
         * this requires a winreg pipe.
         */
        if (!print_backend_init(smbd_messaging_context()))
                exit(1);
  
-@@ -1262,7 +1265,7 @@ extern void build_options(bool screen);
+@@ -1315,7 +1318,7 @@ extern void build_options(bool screen);
                                       smbd_messaging_context());
                }
        }