mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
r25171: More pstring removal.
Jeremy. (This used to be commit 4748d2639796e8caa67fae44d1cf660d49d82663)
This commit is contained in:
parent
3aaca8028e
commit
db31df8186
@ -278,31 +278,41 @@ done:
|
||||
Recursive routine to print out all children of a TREE_NODE
|
||||
*************************************************************************/
|
||||
|
||||
static void pathtree_print_children( TREE_NODE *node, int debug, const char *path )
|
||||
static void pathtree_print_children(TALLOC_CTX *ctx,
|
||||
TREE_NODE *node,
|
||||
int debug,
|
||||
const char *path )
|
||||
{
|
||||
int i;
|
||||
int num_children;
|
||||
pstring path2;
|
||||
|
||||
char *path2 = NULL;
|
||||
|
||||
if ( !node )
|
||||
return;
|
||||
|
||||
|
||||
|
||||
if ( node->key )
|
||||
DEBUG(debug,("%s: [%s] (%s)\n", path ? path : "NULL", node->key,
|
||||
node->data_p ? "data" : "NULL" ));
|
||||
|
||||
*path2 = '\0';
|
||||
if ( path )
|
||||
pstrcpy( path2, path );
|
||||
pstrcat( path2, node->key ? node->key : "NULL" );
|
||||
pstrcat( path2, "/" );
|
||||
|
||||
num_children = node->num_children;
|
||||
for ( i=0; i<num_children; i++ )
|
||||
pathtree_print_children( node->children[i], debug, path2 );
|
||||
|
||||
if ( path ) {
|
||||
path2 = talloc_strdup(ctx, path);
|
||||
if (!path2) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
path2 = talloc_asprintf(ctx,
|
||||
"%s%s/",
|
||||
path ? path : "",
|
||||
node->key ? node->key : "NULL");
|
||||
if (!path2) {
|
||||
return;
|
||||
}
|
||||
|
||||
num_children = node->num_children;
|
||||
for ( i=0; i<num_children; i++ ) {
|
||||
pathtree_print_children(ctx, node->children[i], debug, path2 );
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
@ -313,21 +323,23 @@ static void pathtree_print_children( TREE_NODE *node, int debug, const char *pat
|
||||
{
|
||||
int i;
|
||||
int num_children = tree->root->num_children;
|
||||
|
||||
|
||||
if ( tree->root->key )
|
||||
DEBUG(debug,("ROOT/: [%s] (%s)\n", tree->root->key,
|
||||
tree->root->data_p ? "data" : "NULL" ));
|
||||
|
||||
|
||||
for ( i=0; i<num_children; i++ ) {
|
||||
pathtree_print_children( tree->root->children[i], debug,
|
||||
TALLOC_CTX *ctx = talloc_stackframe();
|
||||
pathtree_print_children(ctx, tree->root->children[i], debug,
|
||||
tree->root->key ? tree->root->key : "ROOT/" );
|
||||
TALLOC_FREE(ctx);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
return the data_p for for the node in tree matching the key string
|
||||
The key string is the full path. We must break it apart and walk
|
||||
The key string is the full path. We must break it apart and walk
|
||||
the tree
|
||||
*************************************************************************/
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
/*
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
run a command as a specified user
|
||||
Copyright (C) Andrew Tridgell 1992-1998
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@ -27,11 +27,19 @@ This is a utility function of smbrun().
|
||||
****************************************************************************/
|
||||
|
||||
static int setup_out_fd(void)
|
||||
{
|
||||
{
|
||||
int fd;
|
||||
pstring path;
|
||||
TALLOC_CTX *ctx = talloc_stackframe();
|
||||
char *path = NULL;
|
||||
|
||||
slprintf(path, sizeof(path)-1, "%s/smb.XXXXXX", tmpdir());
|
||||
path = talloc_asprintf(ctx,
|
||||
"%s/smb.XXXXXX",
|
||||
tmpdir());
|
||||
if (!path) {
|
||||
TALLOC_FREE(ctx);
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* now create the file */
|
||||
fd = smb_mkstemp(path);
|
||||
@ -39,6 +47,7 @@ static int setup_out_fd(void)
|
||||
if (fd == -1) {
|
||||
DEBUG(0,("setup_out_fd: Failed to create file %s. (%s)\n",
|
||||
path, strerror(errno) ));
|
||||
TALLOC_FREE(ctx);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -46,6 +55,7 @@ static int setup_out_fd(void)
|
||||
|
||||
/* Ensure file only kept around by open fd. */
|
||||
unlink(path);
|
||||
TALLOC_FREE(ctx);
|
||||
return fd;
|
||||
}
|
||||
|
||||
@ -59,7 +69,7 @@ static int smbrun_internal(const char *cmd, int *outfd, BOOL sanitize)
|
||||
pid_t pid;
|
||||
uid_t uid = current_user.ut.uid;
|
||||
gid_t gid = current_user.ut.gid;
|
||||
|
||||
|
||||
/*
|
||||
* Lose any elevated privileges.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user