The branch, master has been updated
       via  9e2c50971ee309dfe2f36efa11f572e1d985d057 (commit)
      from  fafe2589e684e1946431722c8845d0dadd9ab525 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9e2c50971ee309dfe2f36efa11f572e1d985d057
Author: Stefan Metzmacher <me...@samba.org>
Date:   Tue Jul 14 09:47:46 2009 +0200

    s3:smbd: check quota access against sec_initial_uid() instead of 0
    
    And return an NTSTATUS mapped from errno. Instead of hardcoded values.
    
    metze

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

Summary of changes:
 source3/smbd/trans2.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index a862c14..d1f2e7f 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -2952,17 +2952,17 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", 
(unsigned int)bsize, (unsigned
                        fsp.fnum = -1;
 
                        /* access check */
-                       if (conn->server_info->utok.uid != 0) {
+                       if (conn->server_info->utok.uid != sec_initial_uid()) {
                                DEBUG(0,("set_user_quota: access_denied "
                                         "service [%s] user [%s]\n",
                                         lp_servicename(SNUM(conn)),
                                         conn->server_info->unix_name));
-                               return NT_STATUS_DOS(ERRDOS, ERRnoaccess);
+                               return NT_STATUS_ACCESS_DENIED;
                        }
 
                        if (vfs_get_ntquota(&fsp, SMB_USER_FS_QUOTA_TYPE, NULL, 
&quotas)!=0) {
                                DEBUG(0,("vfs_get_ntquota() failed for service 
[%s]\n",lp_servicename(SNUM(conn))));
-                               return NT_STATUS_DOS(ERRSRV, ERRerror);
+                               return map_nt_error_from_unix(errno);
                        }
 
                        data_len = 48;
@@ -3446,12 +3446,12 @@ cap_low = 0x%x, cap_high = 0x%x\n",
                                ZERO_STRUCT(quotas);
 
                                /* access check */
-                               if ((conn->server_info->utok.uid != 0)
+                               if ((conn->server_info->utok.uid != 
sec_initial_uid())
                                    ||!CAN_WRITE(conn)) {
                                        DEBUG(0,("set_user_quota: access_denied 
service [%s] user [%s]\n",
                                                 lp_servicename(SNUM(conn)),
                                                 conn->server_info->unix_name));
-                                       reply_doserror(req, ERRSRV, ERRaccess);
+                                       reply_nterror(req, 
NT_STATUS_ACCESS_DENIED);
                                        return;
                                }
 
@@ -3520,7 +3520,7 @@ cap_low = 0x%x, cap_high = 0x%x\n",
                                /* now set the quotas */
                                if (vfs_set_ntquota(fsp, 
SMB_USER_FS_QUOTA_TYPE, NULL, &quotas)!=0) {
                                        DEBUG(0,("vfs_set_ntquota() failed for 
service [%s]\n",lp_servicename(SNUM(conn))));
-                                       reply_doserror(req, ERRSRV, ERRerror);
+                                       reply_nterror(req, 
map_nt_error_from_unix(errno));
                                        return;
                                }
 


-- 
Samba Shared Repository

Reply via email to