flagstr++;
}
if ((how.flags & O_CREAT) && argc == 4) {
- if (sscanf(argv[3], "%ho", (unsigned short *)&how.mode) == 0) {
+ short _mode = 0;
+
+ if (sscanf(argv[3], "%ho", &_mode) == 0) {
printf("open: error=-1 (invalid mode!)\n");
return NT_STATUS_UNSUCCESSFUL;
}
+
+ how.mode = _mode;
}
fsp = talloc_zero(vfs, struct files_struct);
static NTSTATUS cmd_mknod(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, const char **argv)
{
+ short _mode = 0;
mode_t mode;
unsigned int dev_val;
SMB_DEV_T dev;
return NT_STATUS_OK;
}
- if (sscanf(argv[2], "%ho", (unsigned short *)&mode) == 0) {
+ if (sscanf(argv[2], "%ho", &_mode) == 0) {
printf("open: error=-1 (invalid mode!)\n");
return NT_STATUS_UNSUCCESSFUL;
}
+ mode = _mode;
if (sscanf(argv[3], "%x", &dev_val) == 0) {
printf("open: error=-1 (invalid dev!)\n");