diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2012-07-23 14:51:34 +0930 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-08-07 23:20:05 +1000 |
commit | 3bb65aa159cae310b2a5d4998c258d72ace2fa3f (patch) | |
tree | aba74ca94c57eea63ec56cee2912c0bb9585fc9c /source3/smbd | |
parent | a14c02d2a7b9d070a6338a360103a34e7673454c (diff) | |
download | samba-3bb65aa159cae310b2a5d4998c258d72ace2fa3f.tar.gz samba-3bb65aa159cae310b2a5d4998c258d72ace2fa3f.tar.bz2 samba-3bb65aa159cae310b2a5d4998c258d72ace2fa3f.zip |
source3/smbd/conn.c: wean off string_set/string_free
Use straight talloc strings. This is the only user outside loadparm.c.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/conn.c | 10 | ||||
-rw-r--r-- | source3/smbd/service.c | 9 |
2 files changed, 8 insertions, 11 deletions
diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c index 28e1850b45..bc5a03b4eb 100644 --- a/source3/smbd/conn.c +++ b/source3/smbd/conn.c @@ -62,7 +62,9 @@ connection_struct *conn_new(struct smbd_server_connection *sconn) connection_struct *conn; if (!(conn=talloc_zero(NULL, connection_struct)) || - !(conn->params = talloc(conn, struct share_params))) { + !(conn->params = talloc(conn, struct share_params)) || + !(conn->connectpath = talloc_strdup(conn, "")) || + !(conn->origpath = talloc_strdup(conn, ""))) { DEBUG(0,("TALLOC_ZERO() failed!\n")); TALLOC_FREE(conn); return NULL; @@ -70,9 +72,6 @@ connection_struct *conn_new(struct smbd_server_connection *sconn) conn->sconn = sconn; conn->force_group_gid = (gid_t)-1; - string_set(&conn->connectpath,""); - string_set(&conn->origpath,""); - DLIST_ADD(sconn->connections, conn); sconn->num_connections++; @@ -171,9 +170,6 @@ static void conn_free_internal(connection_struct *conn) free_namearray(conn->veto_oplock_list); free_namearray(conn->aio_write_behind_list); - string_free(&conn->connectpath); - string_free(&conn->origpath); - ZERO_STRUCTP(conn); talloc_destroy(conn); } diff --git a/source3/smbd/service.c b/source3/smbd/service.c index a1d009cb44..4fc1aa3e2d 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -61,7 +61,7 @@ bool set_conn_connectpath(connection_struct *conn, const char *connectpath) } /* Allocate for strlen + '\0' + possible leading '/' */ - destname = (char *)SMB_MALLOC(strlen(connectpath) + 2); + destname = (char *)talloc_size(conn, strlen(connectpath) + 2); if (!destname) { return false; } @@ -162,8 +162,8 @@ bool set_conn_connectpath(connection_struct *conn, const char *connectpath) DEBUG(10,("set_conn_connectpath: service %s, connectpath = %s\n", lp_servicename(talloc_tos(), SNUM(conn)), destname )); - string_set(&conn->connectpath, destname); - SAFE_FREE(destname); + talloc_free(conn->connectpath); + conn->connectpath = destname; return true; } @@ -867,7 +867,8 @@ static NTSTATUS make_connection_snum(struct smbd_server_connection *sconn, } conn->base_share_dev = smb_fname_cpath->st.st_ex_dev; - string_set(&conn->origpath,conn->connectpath); + talloc_free(conn->origpath); + conn->origpath = talloc_strdup(conn, conn->connectpath); /* Figure out the characteristics of the underlying filesystem. This * assumes that all the filesystem mounted withing a share path have |