*/
#include "includes.h"
+#include "torture/torture.h"
+#include "libcli/libcli.h"
+#include "libcli/raw/libcliraw.h"
+#include "system/filesys.h"
+#include "pstring.h"
#define VERBOSE 0
#define OP_MIN 0
****************************************************************************/
static void trans2_check_hit(const char *format, int op, int level, NTSTATUS status)
{
- if (NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_INVALID_LEVEL) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_NOT_IMPLEMENTED) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_NOT_SUPPORTED) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_UNSUCCESSFUL) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_INVALID_INFO_CLASS)) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_LEVEL) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_UNSUCCESSFUL) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) {
return;
}
#if VERBOSE
****************************************************************************/
static NTSTATUS try_trans2(struct smbcli_state *cli,
int op,
- char *param, char *data,
+ uint8_t *param, uint8_t *data,
int param_len, int data_len,
int *rparam_len, int *rdata_len)
{
mem_ctx = talloc_init("try_trans2");
- t2.in.max_param = 1024;
- t2.in.max_data = 0x8000;
+ t2.in.max_param = 64;
+ t2.in.max_data = smb_raw_max_trans_data(cli->tree, 64);
t2.in.max_setup = 10;
t2.in.flags = 0;
t2.in.timeout = 0;
*rparam_len = t2.out.params.length;
*rdata_len = t2.out.data.length;
- talloc_destroy(mem_ctx);
+ talloc_free(mem_ctx);
return status;
}
static NTSTATUS try_trans2_len(struct smbcli_state *cli,
const char *format,
int op, int level,
- char *param, char *data,
+ uint8_t *param, uint8_t *data,
int param_len, int *data_len,
int *rparam_len, int *rdata_len)
{
int data_len = 0;
int param_len = 0;
int rparam_len, rdata_len;
- pstring param, data;
+ uint8_t param[1024], data[1024];
NTSTATUS status1, status2;
memset(data, 0, sizeof(data));
int data_len = 0;
int param_len = 0;
int rparam_len, rdata_len;
- pstring param, data;
+ uint8_t param[1024], data[1024];
NTSTATUS status;
memset(data, 0, sizeof(data));
}
-BOOL torture_trans2_scan(int dummy)
+BOOL torture_trans2_scan(void)
{
static struct smbcli_state *cli;
int op, level;
printf("file open failed - %s\n", smbcli_errstr(cli->tree));
}
dnum = smbcli_nt_create_full(cli->tree, "\\",
- 0, GENERIC_RIGHTS_FILE_READ, FILE_ATTRIBUTE_NORMAL,
- NTCREATEX_SHARE_ACCESS_READ | NTCREATEX_SHARE_ACCESS_WRITE,
- NTCREATEX_DISP_OPEN,
- NTCREATEX_OPTIONS_DIRECTORY, 0);
+ 0,
+ SEC_RIGHTS_FILE_READ,
+ FILE_ATTRIBUTE_NORMAL,
+ NTCREATEX_SHARE_ACCESS_READ | NTCREATEX_SHARE_ACCESS_WRITE,
+ NTCREATEX_DISP_OPEN,
+ NTCREATEX_OPTIONS_DIRECTORY, 0);
if (dnum == -1) {
printf("directory open failed - %s\n", smbcli_errstr(cli->tree));
}
qfnum = smbcli_nt_create_full(cli->tree, "\\$Extend\\$Quota:$Q:$INDEX_ALLOCATION",
NTCREATEX_FLAGS_EXTENDED,
- SEC_RIGHTS_MAXIMUM_ALLOWED,
+ SEC_FLAG_MAXIMUM_ALLOWED,
0,
NTCREATEX_SHARE_ACCESS_READ|NTCREATEX_SHARE_ACCESS_WRITE,
NTCREATEX_DISP_OPEN,
****************************************************************************/
static void nttrans_check_hit(const char *format, int op, int level, NTSTATUS status)
{
- if (NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_INVALID_LEVEL) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_NOT_IMPLEMENTED) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_NOT_SUPPORTED) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_UNSUCCESSFUL) ||
- NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_INVALID_INFO_CLASS)) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_LEVEL) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_UNSUCCESSFUL) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) {
return;
}
#if VERBOSE
****************************************************************************/
static NTSTATUS try_nttrans(struct smbcli_state *cli,
int op,
- char *param, char *data,
+ uint8_t *param, uint8_t *data,
int param_len, int data_len,
int *rparam_len, int *rdata_len)
{
ntdata_blob.length = data_len;
ntdata_blob.data = data;
- parms.in.max_param = 1024;
- parms.in.max_data = 1024;
+ parms.in.max_param = 64;
+ parms.in.max_data = smb_raw_max_trans_data(cli->tree, 64);
parms.in.max_setup = 0;
parms.in.setup_count = 0;
parms.in.function = op;
if (NT_STATUS_IS_ERR(status)) {
DEBUG(1,("Failed to send NT_TRANS\n"));
- talloc_destroy(mem_ctx);
+ talloc_free(mem_ctx);
return status;
}
*rparam_len = parms.out.params.length;
*rdata_len = parms.out.data.length;
- talloc_destroy(mem_ctx);
+ talloc_free(mem_ctx);
return status;
}
static NTSTATUS try_nttrans_len(struct smbcli_state *cli,
const char *format,
int op, int level,
- char *param, char *data,
+ uint8_t *param, uint8_t *data,
int param_len, int *data_len,
int *rparam_len, int *rdata_len)
{
int data_len = 0;
int param_len = 0;
int rparam_len, rdata_len;
- pstring param, data;
+ uint8_t param[1024], data[1024];
NTSTATUS status;
memset(data, 0, sizeof(data));
SSVAL(param, 0, level);
SSVAL(param, 2, 0);
SSVAL(param, 4, 0);
- param_len += push_string(¶m[6], fname, -1, STR_TERMINATE | STR_UNICODE);
+ param_len += push_string(¶m[6], fname, sizeof(pstring), STR_TERMINATE | STR_UNICODE);
status = try_nttrans_len(cli, "fname", op, level, param, data, param_len, &data_len,
&rparam_len, &rdata_len);
SSVAL(param, 0, level);
SSVAL(param, 2, 0);
SSVAL(param, 4, 0);
- param_len += push_string(¶m[6], "\\newfile.dat", -1, STR_TERMINATE | STR_UNICODE);
+ param_len += push_string(¶m[6], "\\newfile.dat", sizeof(pstring), STR_TERMINATE | STR_UNICODE);
status = try_nttrans_len(cli, "newfile", op, level, param, data, param_len, &data_len,
&rparam_len, &rdata_len);
smbcli_mkdir(cli->tree, "\\testdir");
param_len = 2;
SSVAL(param, 0, level);
- param_len += push_string(¶m[2], "\\testdir", -1, STR_TERMINATE | STR_UNICODE);
+ param_len += push_string(¶m[2], "\\testdir", sizeof(pstring), STR_TERMINATE | STR_UNICODE);
status = try_nttrans_len(cli, "dfs", op, level, param, data, param_len, &data_len,
&rparam_len, &rdata_len);
}
-BOOL torture_nttrans_scan(int dummy)
+BOOL torture_nttrans_scan(void)
{
static struct smbcli_state *cli;
int op, level;
/* scan for valid base SMB requests */
-BOOL torture_smb_scan(int dummy)
+BOOL torture_smb_scan(void)
{
static struct smbcli_state *cli;
int op;