*/
#include "includes.h"
+#include "system/filesys.h"
#include "torture/proto.h"
+#include "../libcli/security/security.h"
+#include "libsmb/libsmb.h"
+#include "libsmb/clirap.h"
bool torture_utable(int dummy)
{
smb_ucs2_t c2;
int c, len, fd;
int chars_allowed=0, alt_allowed=0;
- uint8 valid[0x10000];
+ uint8_t valid[0x10000];
printf("starting utable\n");
memset(valid, 0, sizeof(valid));
cli_mkdir(cli, "\\utable");
- cli_unlink(cli, "\\utable\\*", aSYSTEM | aHIDDEN);
+ cli_unlink(cli, "\\utable\\*", FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
for (c=1; c < 0x10000; c++) {
+ size_t size = 0;
char *p;
SSVAL(&c2, 0, c);
fstrcpy(fname, "\\utable\\x");
p = fname+strlen(fname);
- len = convert_string(CH_UTF16LE, CH_UNIX,
+ if (!convert_string(CH_UTF16LE, CH_UNIX,
&c2, 2,
- p, sizeof(fname)-strlen(fname), True);
+ p, sizeof(fname)-strlen(fname),&size)) {
+ d_printf("convert_string %s failed !\n", fname);
+ continue;
+ }
+ len = size;
p[len] = 0;
fstrcat(fname,"_a_long_extension");
- if (!NT_STATUS_IS_OK(cli_open(cli, fname, O_RDWR | O_CREAT | O_TRUNC,
+ if (!NT_STATUS_IS_OK(cli_openx(cli, fname, O_RDWR | O_CREAT | O_TRUNC,
DENY_NONE, &fnum))) {
continue;
}
}
cli_close(cli, fnum);
- cli_unlink(cli, fname, aSYSTEM | aHIDDEN);
+ cli_unlink(cli, fname, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
if (c % 100 == 0) {
printf("%d (%d/%d)\r", c, chars_allowed, alt_allowed);
static fstring fname;
smb_ucs2_t c2;
char *p;
- int len;
+ size_t len = 0;
fstrcpy(fname, "\\utable\\");
p = fname+strlen(fname);
SSVAL(&c2, 0, c);
- len = convert_string(CH_UTF16LE, CH_UNIX,
+ if (!convert_string(CH_UTF16LE, CH_UNIX,
&c2, 2,
- p, sizeof(fname)-strlen(fname), True);
+ p, sizeof(fname)-strlen(fname), &len)) {
+ d_printf("form_name: convert string %s failed\n",
+ fname);
+ return NULL;
+ }
p[len] = 0;
return fname;
}
memset(equiv, 0, sizeof(equiv));
- cli_unlink(cli, "\\utable\\*", aSYSTEM | aHIDDEN);
+ cli_unlink(cli, "\\utable\\*", FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
cli_rmdir(cli, "\\utable");
if (!NT_STATUS_IS_OK(cli_mkdir(cli, "\\utable"))) {
printf("Failed to create utable directory!\n");
}
for (c=1; c < 0x10000; c++) {
- SMB_OFF_T size;
+ off_t size;
if (c == '.' || c == '\\') continue;
GENERIC_ALL_ACCESS,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_NONE,
- FILE_OPEN_IF, 0, 0, &fnum))) {
+ FILE_OPEN_IF, 0, 0, &fnum, NULL))) {
printf("Failed to create file with char %04x\n", c);
continue;
}
size = 0;
- if (!cli_qfileinfo(cli, fnum, NULL, &size,
- NULL, NULL, NULL, NULL, NULL)) continue;
+ if (!NT_STATUS_IS_OK(cli_qfileinfo_basic(
+ cli, fnum, NULL, &size,
+ NULL, NULL, NULL, NULL, NULL))) {
+ continue;
+ }
if (size > 0) {
/* found a character equivalence! */
return False;
}
- cli_read(cli, fnum, (char *)c2, 0, size);
+ cli_read(cli, fnum, (char *)c2, 0, size, NULL);
printf("%04x: ", c);
equiv[c][0] = c;
for (i=0; i<size/sizeof(int); i++) {
fflush(stdout);
}
- cli_write(cli, fnum, 0, (char *)&c, size, sizeof(c));
+ cli_writeall(cli, fnum, 0, (uint8_t *)&c, size, sizeof(c),
+ NULL);
cli_close(cli, fnum);
}
- cli_unlink(cli, "\\utable\\*", aSYSTEM | aHIDDEN);
+ cli_unlink(cli, "\\utable\\*", FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
cli_rmdir(cli, "\\utable");
return True;