mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Fix an ancient uninitialized variable read
The callers of open_file_ntcreate expect *psbuf to be filled correctly
This commit is contained in:
parent
cb5db966e3
commit
ce2ff557bd
@ -4896,7 +4896,8 @@ bool sysv_cache_reload(void);
|
||||
|
||||
NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
|
||||
const char *fname,
|
||||
uint16_t current_vuid, files_struct *fsp);
|
||||
uint16_t current_vuid, files_struct *fsp,
|
||||
SMB_STRUCT_STAT *psbuf);
|
||||
void print_fsp_end(files_struct *fsp, enum file_close_type close_type);
|
||||
|
||||
/* The following definitions come from printing/printing.c */
|
||||
|
@ -27,10 +27,10 @@ print_job_start().
|
||||
|
||||
NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
|
||||
const char *fname,
|
||||
uint16_t current_vuid, files_struct *fsp)
|
||||
uint16_t current_vuid, files_struct *fsp,
|
||||
SMB_STRUCT_STAT *psbuf)
|
||||
{
|
||||
int jobid;
|
||||
SMB_STRUCT_STAT sbuf;
|
||||
fstring name;
|
||||
NTSTATUS status;
|
||||
|
||||
@ -74,9 +74,9 @@ NTSTATUS print_fsp_open(struct smb_request *req, connection_struct *conn,
|
||||
fsp->is_directory = False;
|
||||
string_set(&fsp->fsp_name,print_job_fname(lp_const_servicename(SNUM(conn)),jobid));
|
||||
fsp->wcp = NULL;
|
||||
SMB_VFS_FSTAT(fsp, &sbuf);
|
||||
fsp->mode = sbuf.st_mode;
|
||||
fsp->file_id = vfs_file_id_from_sbuf(conn, &sbuf);
|
||||
SMB_VFS_FSTAT(fsp, psbuf);
|
||||
fsp->mode = psbuf->st_mode;
|
||||
fsp->file_id = vfs_file_id_from_sbuf(conn, psbuf);
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
@ -1360,7 +1360,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn,
|
||||
|
||||
DEBUG(10, ("open_file_ntcreate: printer open fname=%s\n", fname));
|
||||
|
||||
return print_fsp_open(req, conn, fname, req->vuid, fsp);
|
||||
return print_fsp_open(req, conn, fname, req->vuid, fsp, psbuf);
|
||||
}
|
||||
|
||||
if (!parent_dirname_talloc(talloc_tos(), fname, &parent_dir,
|
||||
|
@ -4594,6 +4594,7 @@ void reply_printopen(struct smb_request *req)
|
||||
{
|
||||
connection_struct *conn = req->conn;
|
||||
files_struct *fsp;
|
||||
SMB_STRUCT_STAT sbuf;
|
||||
NTSTATUS status;
|
||||
|
||||
START_PROFILE(SMBsplopen);
|
||||
@ -4618,7 +4619,7 @@ void reply_printopen(struct smb_request *req)
|
||||
}
|
||||
|
||||
/* Open for exclusive use, write only. */
|
||||
status = print_fsp_open(req, conn, NULL, req->vuid, fsp);
|
||||
status = print_fsp_open(req, conn, NULL, req->vuid, fsp, &sbuf);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
reply_nterror(req, status);
|
||||
|
Loading…
Reference in New Issue
Block a user