svn commit: samba r15723 - in trunk/source/smbd: .

vlendec at samba.org vlendec at samba.org
Fri May 19 20:57:10 GMT 2006


Author: vlendec
Date: 2006-05-19 20:57:10 +0000 (Fri, 19 May 2006)
New Revision: 15723

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

Log:
Convert open_fake_file not to use set_saved_ntstatus

Volker

Modified:
   trunk/source/smbd/fake_file.c
   trunk/source/smbd/nttrans.c


Changeset:
Modified: trunk/source/smbd/fake_file.c
===================================================================
--- trunk/source/smbd/fake_file.c	2006-05-19 20:40:44 UTC (rev 15722)
+++ trunk/source/smbd/fake_file.c	2006-05-19 20:57:10 UTC (rev 15723)
@@ -101,10 +101,11 @@
  Open a fake quota file with a share mode.
 ****************************************************************************/
 
-files_struct *open_fake_file(connection_struct *conn,
+NTSTATUS open_fake_file(connection_struct *conn,
 				enum FAKE_FILE_TYPE fake_file_type,
 				const char *fname,
-				uint32 access_mask)
+				uint32 access_mask,
+				files_struct **result)
 {
 	files_struct *fsp = NULL;
 	NTSTATUS status;
@@ -113,14 +114,13 @@
 	if (current_user.ut.uid != 0) {
 		DEBUG(1,("open_fake_file_shared: access_denied to service[%s] file[%s] user[%s]\n",
 			lp_servicename(SNUM(conn)),fname,conn->user));
-		errno = EACCES;
-		return NULL;
+		return NT_STATUS_ACCESS_DENIED;
+
 	}
 
 	status = file_new(conn, &fsp);
 	if(!NT_STATUS_IS_OK(status)) {
-		set_saved_ntstatus(status);
-		return NULL;
+		return status;
 	}
 
 	DEBUG(5,("open_fake_file_shared: fname = %s, FID = %d, access_mask = 0x%x\n",
@@ -138,11 +138,12 @@
 	
 	if (fsp->fake_file_handle==NULL) {
 		file_free(fsp);
-		return NULL;
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	conn->num_files_open++;
-	return fsp;
+	*result = fsp;
+	return NT_STATUS_OK;
 }
 
 void destroy_fake_file_handle(FAKE_FILE_HANDLE **fh)

Modified: trunk/source/smbd/nttrans.c
===================================================================
--- trunk/source/smbd/nttrans.c	2006-05-19 20:40:44 UTC (rev 15722)
+++ trunk/source/smbd/nttrans.c	2006-05-19 20:57:10 UTC (rev 15723)
@@ -412,10 +412,14 @@
 	int result;
 	char *p;
 	uint32 desired_access = IVAL(inbuf,smb_ntcreate_DesiredAccess);
-	files_struct *fsp = open_fake_file(conn, fake_file_type, fname, desired_access);
+	files_struct *fsp;
+	NTSTATUS status;
 
-	if (!fsp) {
-		return ERROR_NT(NT_STATUS_ACCESS_DENIED);
+	status = open_fake_file(conn, fake_file_type, fname, desired_access,
+				&fsp);
+
+	if (!NT_STATUS_IS_OK(status)) {
+		return ERROR_NT(status);
 	}
 
 	set_message(outbuf,34,0,True);



More information about the samba-cvs mailing list