samba36: fix some security problems
[openwrt/openwrt.git] / package / network / services / samba36 / patches / 200-remove_printer_support.patch
index d8c3add14779de8aa73caa4bc17efacd05f647a8..90f13feb0da9c8d1f977b319b15461b999561aeb 100644 (file)
@@ -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
-@@ -5206,7 +5206,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;
-@@ -5312,7 +5316,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) */
        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.
                 */