mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
4cff81603a
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Joseph Sutton <josephsutton@catalyst.net.nz>
1601 lines
84 KiB
C
1601 lines
84 KiB
C
/*
|
|
Unix SMB/CIFS implementation.
|
|
SMB torture tester - scanning functions
|
|
Copyright (C) Andrew Tridgell 2001
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "includes.h"
|
|
#include "system/filesys.h"
|
|
#include "torture/proto.h"
|
|
#include "libsmb/libsmb.h"
|
|
|
|
extern bool torture_showall;
|
|
|
|
enum deny_result {A_0=0, A_X=1, A_R=2, A_W=3, A_RW=5};
|
|
|
|
|
|
static const char *denystr(int denymode)
|
|
{
|
|
struct {
|
|
int v;
|
|
const char *name;
|
|
} deny_modes[] = {
|
|
{DENY_DOS, "DENY_DOS"},
|
|
{DENY_ALL, "DENY_ALL"},
|
|
{DENY_WRITE, "DENY_WRITE"},
|
|
{DENY_READ, "DENY_READ"},
|
|
{DENY_NONE, "DENY_NONE"},
|
|
{DENY_FCB, "DENY_FCB"},
|
|
{-1, NULL}};
|
|
int i;
|
|
for (i=0;deny_modes[i].name;i++) {
|
|
if (deny_modes[i].v == denymode) return deny_modes[i].name;
|
|
}
|
|
return "DENY_XXX";
|
|
}
|
|
|
|
static const char *openstr(int mode)
|
|
{
|
|
struct {
|
|
int v;
|
|
const char *name;
|
|
} open_modes[] = {
|
|
{O_RDWR, "O_RDWR"},
|
|
{O_RDONLY, "O_RDONLY"},
|
|
{O_WRONLY, "O_WRONLY"},
|
|
{-1, NULL}};
|
|
int i;
|
|
for (i=0;open_modes[i].name;i++) {
|
|
if (open_modes[i].v == mode) return open_modes[i].name;
|
|
}
|
|
return "O_XXX";
|
|
}
|
|
|
|
static const char *resultstr(enum deny_result res)
|
|
{
|
|
struct {
|
|
enum deny_result res;
|
|
const char *name;
|
|
} results[] = {
|
|
{A_X, "X"},
|
|
{A_0, "-"},
|
|
{A_R, "R"},
|
|
{A_W, "W"},
|
|
{A_RW,"RW"}};
|
|
size_t i;
|
|
for (i=0;i<ARRAY_SIZE(results);i++) {
|
|
if (results[i].res == res) return results[i].name;
|
|
}
|
|
return "*";
|
|
}
|
|
|
|
static struct {
|
|
int isexe;
|
|
int mode1, deny1;
|
|
int mode2, deny2;
|
|
enum deny_result result;
|
|
} denytable2[] = {
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_RW},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_W},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_RW},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_R},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_W},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0}
|
|
};
|
|
|
|
|
|
static struct {
|
|
int isexe;
|
|
int mode1, deny1;
|
|
int mode2, deny2;
|
|
enum deny_result result;
|
|
} denytable1[] = {
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_RW},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_W},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_RW},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_R},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_W},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{1, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
|
|
{1, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
|
|
{1, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
|
|
{1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
|
|
{1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{1, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
|
|
{1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
|
|
{1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_RW},
|
|
{0, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_RW},
|
|
{0, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_RW},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_RW},
|
|
{0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_RW},
|
|
{0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_RW},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
|
|
{0, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
|
|
{0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
|
|
{0, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
|
|
{0, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
|
|
{0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
|
|
{0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
|
|
{0, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
|
|
{0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
|
|
{0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW}
|
|
};
|
|
|
|
|
|
static void progress_bar(unsigned i, unsigned total)
|
|
{
|
|
if (i % 10 != 0) return;
|
|
printf("%5d/%5d\r", i, total);
|
|
fflush(stdout);
|
|
}
|
|
|
|
/*
|
|
this produces a matrix of deny mode behaviour for 1 connection
|
|
*/
|
|
bool torture_denytest1(int dummy)
|
|
{
|
|
struct cli_state *cli1;
|
|
uint16_t fnum1, fnum2;
|
|
bool correct = True;
|
|
NTSTATUS ret1, ret2, status;
|
|
const char *fnames[2] = {"\\denytest1.dat", "\\denytest1.exe"};
|
|
size_t i, nread;
|
|
|
|
if (!torture_open_connection(&cli1, 0)) {
|
|
return False;
|
|
}
|
|
|
|
printf("starting denytest1\n");
|
|
|
|
for (i=0;i<2;i++) {
|
|
cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
|
|
cli_openx(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
|
|
cli_writeall(cli1, fnum1, 0, (const uint8_t *)fnames[i], 0,
|
|
strlen(fnames[i]), NULL);
|
|
cli_close(cli1, fnum1);
|
|
}
|
|
|
|
printf("testing %ld entries\n", (unsigned long)ARRAY_SIZE(denytable1));
|
|
|
|
for (i=0; i<ARRAY_SIZE(denytable1); i++) {
|
|
enum deny_result res;
|
|
const char *fname = fnames[denytable1[i].isexe];
|
|
|
|
progress_bar(i, ARRAY_SIZE(denytable1));
|
|
|
|
ret1 = cli_openx(cli1, fname,
|
|
denytable1[i].mode1,
|
|
denytable1[i].deny1, &fnum1);
|
|
ret2 = cli_openx(cli1, fname,
|
|
denytable1[i].mode2,
|
|
denytable1[i].deny2, &fnum2);
|
|
|
|
if (!NT_STATUS_IS_OK(ret1)) {
|
|
res = A_X;
|
|
} else if (!NT_STATUS_IS_OK(ret2)) {
|
|
res = A_0;
|
|
} else {
|
|
char x = 1;
|
|
res = A_0;
|
|
|
|
status = cli_read(cli1, fnum2, (char *)&x, 0, 1,
|
|
&nread);
|
|
if (NT_STATUS_IS_OK(status) && nread == 1) {
|
|
res += A_R;
|
|
}
|
|
if (NT_STATUS_IS_OK(cli_writeall(cli1, fnum2, 0,
|
|
(uint8_t *)&x, 0, 1,
|
|
NULL))) {
|
|
res += A_W;
|
|
}
|
|
}
|
|
|
|
if (res != denytable1[i].result) {
|
|
correct = False;
|
|
}
|
|
|
|
if (torture_showall || res != denytable1[i].result) {
|
|
printf("%s %8s %10s %8s %10s %s (correct=%s)\n",
|
|
fname,
|
|
denystr(denytable1[i].deny1),
|
|
openstr(denytable1[i].mode1),
|
|
denystr(denytable1[i].deny2),
|
|
openstr(denytable1[i].mode2),
|
|
resultstr(res),
|
|
resultstr(denytable1[i].result));
|
|
}
|
|
|
|
if (NT_STATUS_IS_OK(ret1)) {
|
|
cli_close(cli1, fnum1);
|
|
}
|
|
if (NT_STATUS_IS_OK(ret2)) {
|
|
cli_close(cli1, fnum2);
|
|
}
|
|
}
|
|
|
|
for (i=0;i<2;i++) {
|
|
cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
|
|
}
|
|
|
|
if (!torture_close_connection(cli1)) {
|
|
correct = False;
|
|
}
|
|
|
|
printf("finished denytest1\n");
|
|
return correct;
|
|
}
|
|
|
|
|
|
/*
|
|
this produces a matrix of deny mode behaviour with 2 connections
|
|
*/
|
|
bool torture_denytest2(int dummy)
|
|
{
|
|
static struct cli_state *cli1, *cli2;
|
|
uint16_t fnum1, fnum2;
|
|
int i;
|
|
bool correct = True;
|
|
NTSTATUS ret1, ret2, status;
|
|
const char *fnames[2] = {"\\denytest2.dat", "\\denytest2.exe"};
|
|
size_t nread;
|
|
|
|
if (!torture_open_connection(&cli1, 0) || !torture_open_connection(&cli2, 1)) {
|
|
return False;
|
|
}
|
|
|
|
printf("starting denytest2\n");
|
|
|
|
for (i=0;i<2;i++) {
|
|
cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
|
|
cli_openx(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
|
|
cli_writeall(cli1, fnum1, 0, (const uint8_t *)fnames[i], 0,
|
|
strlen(fnames[i]), NULL);
|
|
cli_close(cli1, fnum1);
|
|
}
|
|
|
|
for (i=0; i<ARRAY_SIZE(denytable2); i++) {
|
|
enum deny_result res;
|
|
const char *fname = fnames[denytable2[i].isexe];
|
|
|
|
progress_bar(i, ARRAY_SIZE(denytable2));
|
|
|
|
ret1 = cli_openx(cli1, fname,
|
|
denytable2[i].mode1,
|
|
denytable2[i].deny1, &fnum1);
|
|
ret2 = cli_openx(cli2, fname,
|
|
denytable2[i].mode2,
|
|
denytable2[i].deny2, &fnum2);
|
|
|
|
if (!NT_STATUS_IS_OK(ret1)) {
|
|
res = A_X;
|
|
} else if (!NT_STATUS_IS_OK(ret2)) {
|
|
res = A_0;
|
|
} else {
|
|
char x = 1;
|
|
res = A_0;
|
|
|
|
status = cli_read(cli2, fnum2, (char *)&x, 0, 1,
|
|
&nread);
|
|
if (NT_STATUS_IS_OK(status) && nread == 1) {
|
|
res += A_R;
|
|
}
|
|
if (NT_STATUS_IS_OK(cli_writeall(cli2, fnum2, 0,
|
|
(uint8_t *)&x, 0, 1,
|
|
NULL))) {
|
|
res += A_W;
|
|
}
|
|
}
|
|
|
|
if (res != denytable2[i].result) {
|
|
correct = False;
|
|
}
|
|
|
|
if (torture_showall || res != denytable2[i].result) {
|
|
printf("%s %8s %10s %8s %10s %s (correct=%s)\n",
|
|
fname,
|
|
denystr(denytable2[i].deny1),
|
|
openstr(denytable2[i].mode1),
|
|
denystr(denytable2[i].deny2),
|
|
openstr(denytable2[i].mode2),
|
|
resultstr(res),
|
|
resultstr(denytable2[i].result));
|
|
}
|
|
|
|
if (NT_STATUS_IS_OK(ret1)) {
|
|
cli_close(cli1, fnum1);
|
|
}
|
|
if (NT_STATUS_IS_OK(ret2)) {
|
|
cli_close(cli2, fnum2);
|
|
}
|
|
}
|
|
|
|
for (i=0;i<2;i++) {
|
|
cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
|
|
}
|
|
|
|
if (!torture_close_connection(cli1)) {
|
|
correct = False;
|
|
}
|
|
if (!torture_close_connection(cli2)) {
|
|
correct = False;
|
|
}
|
|
|
|
printf("finished denytest2\n");
|
|
return correct;
|
|
}
|
|
|