diff options
author | Volker Lendecke <vl@samba.org> | 2009-02-22 11:53:50 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-02-24 20:40:46 +0100 |
commit | dbc79381a87269e8ca0631e001aebb064ab4851b (patch) | |
tree | fb116bb664c8fd437aa4bc7e7d191a364e430307 /source3/libsmb/cliconnect.c | |
parent | 365925eea308673f15e03d81b69f04b8908468e7 (diff) | |
download | samba-dbc79381a87269e8ca0631e001aebb064ab4851b.tar.gz samba-dbc79381a87269e8ca0631e001aebb064ab4851b.tar.bz2 samba-dbc79381a87269e8ca0631e001aebb064ab4851b.zip |
Convert name_mangle() to use talloc
Diffstat (limited to 'source3/libsmb/cliconnect.c')
-rw-r--r-- | source3/libsmb/cliconnect.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index dabfc398ce..ad11ee0ed4 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -1642,6 +1642,7 @@ bool cli_session_request(struct cli_state *cli, { char *p; int len = 4; + char *tmp; /* 445 doesn't have session request */ if (cli->port == 445) @@ -1651,14 +1652,30 @@ bool cli_session_request(struct cli_state *cli, memcpy(&(cli->called ), called , sizeof(*called )); /* put in the destination name */ + + tmp = name_mangle(talloc_tos(), cli->called.name, + cli->called.name_type); + if (tmp == NULL) { + return false; + } + p = cli->outbuf+len; - name_mangle(cli->called .name, p, cli->called .name_type); - len += name_len(p); + memcpy(p, tmp, name_len(tmp)); + len += name_len(tmp); + TALLOC_FREE(tmp); /* and my name */ + + tmp = name_mangle(talloc_tos(), cli->calling.name, + cli->calling.name_type); + if (tmp == NULL) { + return false; + } + p = cli->outbuf+len; - name_mangle(cli->calling.name, p, cli->calling.name_type); - len += name_len(p); + memcpy(p, tmp, name_len(tmp)); + len += name_len(tmp); + TALLOC_FREE(tmp); /* send a session request (RFC 1002) */ /* setup the packet length |