conn = talloc_zero(NULL, connection_struct);
if (conn == NULL) {
- DBG_ERR("talloc_zero failed\n");
- return NULL;
+ goto nomem;
}
conn->params = talloc(conn, struct share_params);
if (conn->params == NULL) {
- DBG_ERR("talloc_zero failed\n");
- TALLOC_FREE(conn);
- return NULL;
+ goto nomem;
}
conn->vuid_cache = talloc_zero(conn, struct vuid_cache);
if (conn->vuid_cache == NULL) {
- DBG_ERR("talloc_zero failed\n");
- TALLOC_FREE(conn);
- return NULL;
+ goto nomem;
}
conn->connectpath = talloc_strdup(conn, "");
if (conn->connectpath == NULL) {
- DBG_ERR("talloc_zero failed\n");
- TALLOC_FREE(conn);
- return NULL;
+ goto nomem;
}
conn->cwd_fsp = talloc_zero(conn, struct files_struct);
if (conn->cwd_fsp == NULL) {
- DBG_ERR("talloc_zero failed\n");
- TALLOC_FREE(conn);
- return NULL;
+ goto nomem;
}
conn->cwd_fsp->fsp_name = synthetic_smb_fname(conn->cwd_fsp,
".",
0,
0);
if (conn->cwd_fsp->fsp_name == NULL) {
- TALLOC_FREE(conn);
- return NULL;
+ goto nomem;
}
conn->cwd_fsp->fh = fd_handle_create(conn->cwd_fsp);
if (conn->cwd_fsp->fh == NULL) {
- DBG_ERR("talloc_zero failed\n");
- TALLOC_FREE(conn);
- return NULL;
+ goto nomem;
}
conn->sconn = sconn;
conn->force_group_gid = (gid_t)-1;
*/
talloc_set_destructor(conn, conn_struct_destructor);
return conn;
+
+nomem:
+ DBG_ERR("talloc failed");
+ TALLOC_FREE(conn);
+ return NULL;
}
/****************************************************************************