mirror of
https://github.com/samba-team/samba.git
synced 2025-03-09 08:58:35 +03:00
s3: libsmb: Correctly trim a trailing \\ character in cli_smb2_create_fnum_send() when passing a pathname to SMB2 create.
We already trim any leading \\ characters in this function, so this is the simplest place to clean the pathname. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11986 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org> Autobuild-User(master): Uri Simchoni <uri@samba.org> Autobuild-Date(master): Wed Jun 22 10:33:29 CEST 2016 on sn-devel-144 (cherry picked from commit c0704d99ce43a5497a29bfc53331159e4f978441)
This commit is contained in:
parent
ac41e16d40
commit
bf9367ec87
@ -176,6 +176,7 @@ struct tevent_req *cli_smb2_create_fnum_send(TALLOC_CTX *mem_ctx,
|
||||
{
|
||||
struct tevent_req *req, *subreq;
|
||||
struct cli_smb2_create_fnum_state *state;
|
||||
size_t fname_len = 0;
|
||||
|
||||
req = tevent_req_create(mem_ctx, &state,
|
||||
struct cli_smb2_create_fnum_state);
|
||||
@ -199,6 +200,17 @@ struct tevent_req *cli_smb2_create_fnum_send(TALLOC_CTX *mem_ctx,
|
||||
fname++;
|
||||
}
|
||||
|
||||
/* Or end in a '\' */
|
||||
fname_len = strlen(fname);
|
||||
if (fname_len > 0 && fname[fname_len-1] == '\\') {
|
||||
char *new_fname = talloc_strdup(state, fname);
|
||||
if (tevent_req_nomem(new_fname, req)) {
|
||||
return tevent_req_post(req, ev);
|
||||
}
|
||||
new_fname[fname_len-1] = '\0';
|
||||
fname = new_fname;
|
||||
}
|
||||
|
||||
subreq = smb2cli_create_send(state, ev,
|
||||
cli->conn,
|
||||
cli->timeout,
|
||||
|
Loading…
x
Reference in New Issue
Block a user