svn commit: samba r25171 - in branches: SAMBA_3_2/source/lib
SAMBA_3_2_0/source/lib
jra at samba.org
jra at samba.org
Fri Sep 14 22:14:41 GMT 2007
Author: jra
Date: 2007-09-14 22:14:39 +0000 (Fri, 14 Sep 2007)
New Revision: 25171
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25171
Log:
More pstring removal.
Jeremy.
Modified:
branches/SAMBA_3_2/source/lib/adt_tree.c
branches/SAMBA_3_2/source/lib/smbrun.c
branches/SAMBA_3_2_0/source/lib/adt_tree.c
branches/SAMBA_3_2_0/source/lib/smbrun.c
Changeset:
Modified: branches/SAMBA_3_2/source/lib/adt_tree.c
===================================================================
--- branches/SAMBA_3_2/source/lib/adt_tree.c 2007-09-14 22:03:41 UTC (rev 25170)
+++ branches/SAMBA_3_2/source/lib/adt_tree.c 2007-09-14 22:14:39 UTC (rev 25171)
@@ -278,31 +278,41 @@
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, "/" );
-
+ 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( node->children[i], debug, path2 );
-
-
+ for ( i=0; i<num_children; i++ ) {
+ pathtree_print_children(ctx, node->children[i], debug, path2 );
+ }
}
/**************************************************************************
@@ -313,21 +323,23 @@
{
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
*************************************************************************/
Modified: branches/SAMBA_3_2/source/lib/smbrun.c
===================================================================
--- branches/SAMBA_3_2/source/lib/smbrun.c 2007-09-14 22:03:41 UTC (rev 25170)
+++ branches/SAMBA_3_2/source/lib/smbrun.c 2007-09-14 22:14:39 UTC (rev 25171)
@@ -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 @@
****************************************************************************/
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 @@
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 @@
/* Ensure file only kept around by open fd. */
unlink(path);
+ TALLOC_FREE(ctx);
return fd;
}
@@ -59,7 +69,7 @@
pid_t pid;
uid_t uid = current_user.ut.uid;
gid_t gid = current_user.ut.gid;
-
+
/*
* Lose any elevated privileges.
*/
Modified: branches/SAMBA_3_2_0/source/lib/adt_tree.c
===================================================================
--- branches/SAMBA_3_2_0/source/lib/adt_tree.c 2007-09-14 22:03:41 UTC (rev 25170)
+++ branches/SAMBA_3_2_0/source/lib/adt_tree.c 2007-09-14 22:14:39 UTC (rev 25171)
@@ -278,31 +278,41 @@
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, "/" );
-
+ 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( node->children[i], debug, path2 );
-
-
+ for ( i=0; i<num_children; i++ ) {
+ pathtree_print_children(ctx, node->children[i], debug, path2 );
+ }
}
/**************************************************************************
@@ -313,21 +323,23 @@
{
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
*************************************************************************/
Modified: branches/SAMBA_3_2_0/source/lib/smbrun.c
===================================================================
--- branches/SAMBA_3_2_0/source/lib/smbrun.c 2007-09-14 22:03:41 UTC (rev 25170)
+++ branches/SAMBA_3_2_0/source/lib/smbrun.c 2007-09-14 22:14:39 UTC (rev 25171)
@@ -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 @@
****************************************************************************/
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 @@
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 @@
/* Ensure file only kept around by open fd. */
unlink(path);
+ TALLOC_FREE(ctx);
return fd;
}
@@ -59,7 +69,7 @@
pid_t pid;
uid_t uid = current_user.ut.uid;
gid_t gid = current_user.ut.gid;
-
+
/*
* Lose any elevated privileges.
*/
More information about the samba-cvs
mailing list