svn commit: samba r9752 - branches/SAMBA_3_0/source/rpc_server trunk/source/rpc_server

jerry at samba.org jerry at samba.org
Mon Aug 29 17:48:03 GMT 2005


Author: jerry
Date: 2005-08-29 17:48:01 +0000 (Mon, 29 Aug 2005)
New Revision: 9752

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9752

Log:
figured out why talloc_steal() is a bad idea for SEC_DESC*
Add a comment so someone else doesn't get bitten by this as well.


Modified:
   branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c
   trunk/source/rpc_server/srv_spoolss_nt.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2005-08-29 17:31:19 UTC (rev 9751)
+++ branches/SAMBA_3_0/source/rpc_server/srv_spoolss_nt.c	2005-08-29 17:48:01 UTC (rev 9752)
@@ -4171,7 +4171,11 @@
 	if ( ntprinter->info_2->secdesc_buf 
 		&& ntprinter->info_2->secdesc_buf->len != 0 ) 
 	{
-		printer->secdesc = dup_sec_desc( get_talloc_ctx(), ntprinter->info_2->secdesc_buf->sec );
+		/* don't use talloc_steal() here unless you do a deep steal of all 
+		   the SEC_DESC members */
+
+		printer->secdesc = dup_sec_desc( get_talloc_ctx(), 
+			ntprinter->info_2->secdesc_buf->sec );
 	}
 
 	free_a_printer(&ntprinter, 2);
@@ -4205,7 +4209,11 @@
 	printer->flags = 0x4; 
 
 	if (ntprinter->info_2->secdesc_buf && ntprinter->info_2->secdesc_buf->len != 0) {
-		printer->secdesc = dup_sec_desc( get_talloc_ctx(), ntprinter->info_2->secdesc_buf->sec );
+		/* don't use talloc_steal() here unless you do a deep steal of all 
+		   the SEC_DESC members */
+
+		printer->secdesc = dup_sec_desc( get_talloc_ctx(), 
+			ntprinter->info_2->secdesc_buf->sec );
 	}
 
 	free_a_printer(&ntprinter, 2);

Modified: trunk/source/rpc_server/srv_spoolss_nt.c
===================================================================
--- trunk/source/rpc_server/srv_spoolss_nt.c	2005-08-29 17:31:19 UTC (rev 9751)
+++ trunk/source/rpc_server/srv_spoolss_nt.c	2005-08-29 17:48:01 UTC (rev 9752)
@@ -4171,7 +4171,11 @@
 	if ( ntprinter->info_2->secdesc_buf 
 		&& ntprinter->info_2->secdesc_buf->len != 0 ) 
 	{
-		printer->secdesc = dup_sec_desc( get_talloc_ctx(), ntprinter->info_2->secdesc_buf->sec );
+		/* don't use talloc_steal() here unless you do a deep steal of all 
+		   the SEC_DESC members */
+
+		printer->secdesc = dup_sec_desc( get_talloc_ctx(), 
+			ntprinter->info_2->secdesc_buf->sec );
 	}
 
 	free_a_printer(&ntprinter, 2);
@@ -4205,7 +4209,11 @@
 	printer->flags = 0x4; 
 
 	if (ntprinter->info_2->secdesc_buf && ntprinter->info_2->secdesc_buf->len != 0) {
-		printer->secdesc = dup_sec_desc( get_talloc_ctx(), ntprinter->info_2->secdesc_buf->sec );
+		/* don't use talloc_steal() here unless you do a deep steal of all 
+		   the SEC_DESC members */
+
+		printer->secdesc = dup_sec_desc( get_talloc_ctx(), 
+			ntprinter->info_2->secdesc_buf->sec );
 	}
 
 	free_a_printer(&ntprinter, 2);



More information about the samba-cvs mailing list