Correct fix for excel read-only bug. Add panic for logic error in developer mode.
authorJeremy Allison <jra@samba.org>
Thu, 2 Oct 2003 17:26:42 +0000 (17:26 +0000)
committerJeremy Allison <jra@samba.org>
Thu, 2 Oct 2003 17:26:42 +0000 (17:26 +0000)
Jeremy.

source/smbd/error.c
source/smbd/trans2.c

index 7eec5e25dfbf4f62f93dce88831f5f4f6021bc3c..795bf0949ccf7b172c250911cbf0a53dd0c956ed 100644 (file)
@@ -61,6 +61,9 @@ int unix_error_packet(char *outbuf,int def_class,uint32 def_code,
                eclass = unix_ERR_class;
                ecode = unix_ERR_code;
                ntstatus = unix_ERR_ntstatus;
+               unix_ERR_class = SMB_SUCCESS;
+               unix_ERR_code = 0;
+               unix_ERR_ntstatus = NT_STATUS_OK;
        } else {
                while (unix_dos_nt_errmap[i].dos_class != 0) {
                        if (unix_dos_nt_errmap[i].unix_error == errno) {
@@ -90,9 +93,10 @@ int error_packet(char *outbuf,NTSTATUS ntstatus,
        if (errno != 0)
                DEBUG(3,("error string = %s\n",strerror(errno)));
   
-       unix_ERR_class = SMB_SUCCESS;
-       unix_ERR_code = 0;
-       unix_ERR_ntstatus = NT_STATUS_OK;
+#if defined(DEVELOPER)
+       if (unix_ERR_class != SMB_SUCCESS || unix_ERR_code != 0 || !NT_STATUS_IS_OK(unix_ERR_ntstatus))
+               smb_panic("logic error in error processing");
+#endif
 
        /*
         * We can explicitly force 32 bit error codes even when the
index 033e76a33e1dcb9a664bbc6961c1d5852f11e6a4..ee63220d188158907576be1324b1aefc5e725e48 100644 (file)
@@ -1785,12 +1785,9 @@ int set_bad_path_error(int err, BOOL bad_path, char *outbuf, int def_class, uint
                        err, (int)bad_path ));
 
        if(err == ENOENT) {
-               unix_ERR_class = ERRDOS;
                if (bad_path) {
-                       unix_ERR_code = ERRbadpath;
                        return ERROR_NT(NT_STATUS_OBJECT_PATH_NOT_FOUND);
                } else {
-                       unix_ERR_code = ERRbadfile;
                        return ERROR_NT(NT_STATUS_OBJECT_NAME_NOT_FOUND);
                }
        }