summaryrefslogtreecommitdiff
path: root/source3/rpcclient
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2001-06-21 09:10:42 +0000
committerAndrew Tridgell <tridge@samba.org>2001-06-21 09:10:42 +0000
commit91b8a8d1d21b810b6aca44ce647837669efd6dcf (patch)
tree2490cec37a9ae7f9f9ad9adabac033b41e26c07b /source3/rpcclient
parent4ff011d88ef5b79b92d2cea1abe32c93bc03f724 (diff)
downloadsamba-91b8a8d1d21b810b6aca44ce647837669efd6dcf.tar.gz
samba-91b8a8d1d21b810b6aca44ce647837669efd6dcf.tar.bz2
samba-91b8a8d1d21b810b6aca44ce647837669efd6dcf.zip
next_token() was supposed to be a reentrant replacement for strtok(),
but the code suffered from bitrot and is not now reentrant. That means we can get bizarre behaviour i've fixed this by making next_token() reentrant and creating a next_token_nr() that is a small non-reentrant wrapper for those lumps of code (mostly smbclient) that have come to rely on the non-reentrant behaviour (This used to be commit 674ee2f1d12b0afc164a9e9072758fd1c5e54df7)
Diffstat (limited to 'source3/rpcclient')
-rw-r--r--source3/rpcclient/cmd_reg.c22
-rw-r--r--source3/rpcclient/cmd_wkssvc.c2
-rw-r--r--source3/rpcclient/rpcclient.c8
3 files changed, 16 insertions, 16 deletions
diff --git a/source3/rpcclient/cmd_reg.c b/source3/rpcclient/cmd_reg.c
index 89b53c823f..9aac99c928 100644
--- a/source3/rpcclient/cmd_reg.c
+++ b/source3/rpcclient/cmd_reg.c
@@ -91,7 +91,7 @@ void cmd_reg_enum(struct client_info *info)
DEBUG(5, ("cmd_reg_enum: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "regenum <key_name>\n");
return;
@@ -250,7 +250,7 @@ void cmd_reg_query_key(struct client_info *info)
DEBUG(5, ("cmd_reg_enum: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "regquery key_name\n");
return;
@@ -349,7 +349,7 @@ void cmd_reg_create_val(struct client_info *info)
DEBUG(5, ("cmd_reg_create_val: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "regcreate <val_name> <val_type> <val>\n");
return;
@@ -363,7 +363,7 @@ void cmd_reg_create_val(struct client_info *info)
return;
}
- if (!next_token(NULL, tmp, NULL, sizeof(tmp)))
+ if (!next_token_nr(NULL, tmp, NULL, sizeof(tmp)))
{
fprintf(out_hnd, "regcreate <val_name> <val_type (1|4)> <val>\n");
return;
@@ -377,7 +377,7 @@ void cmd_reg_create_val(struct client_info *info)
return;
}
- if (!next_token(NULL, tmp, NULL, sizeof(tmp)))
+ if (!next_token_nr(NULL, tmp, NULL, sizeof(tmp)))
{
fprintf(out_hnd, "regcreate <val_name> <val_type (1|4)> <val>\n");
return;
@@ -484,7 +484,7 @@ void cmd_reg_delete_val(struct client_info *info)
DEBUG(5, ("cmd_reg_delete_val: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "regdelete <val_name>\n");
return;
@@ -559,7 +559,7 @@ void cmd_reg_delete_key(struct client_info *info)
DEBUG(5, ("cmd_reg_delete_key: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "regdeletekey <key_name>\n");
return;
@@ -640,7 +640,7 @@ void cmd_reg_create_key(struct client_info *info)
DEBUG(5, ("cmd_reg_create_key: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "regcreate <key_name> [key_class]\n");
return;
@@ -654,7 +654,7 @@ void cmd_reg_create_key(struct client_info *info)
return;
}
- if (!next_token(NULL, key_class, NULL, sizeof(key_class)))
+ if (!next_token_nr(NULL, key_class, NULL, sizeof(key_class)))
{
memset(key_class, 0, sizeof(key_class));
}
@@ -735,7 +735,7 @@ void cmd_reg_test_key_sec(struct client_info *info)
DEBUG(5, ("cmd_reg_get_key_sec: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "reggetsec <key_name>\n");
return;
@@ -830,7 +830,7 @@ void cmd_reg_get_key_sec(struct client_info *info)
DEBUG(5, ("cmd_reg_get_key_sec: smb_cli->fd:%d\n", smb_cli->fd));
- if (!next_token(NULL, full_keyname, NULL, sizeof(full_keyname)))
+ if (!next_token_nr(NULL, full_keyname, NULL, sizeof(full_keyname)))
{
fprintf(out_hnd, "reggetsec <key_name>\n");
return;
diff --git a/source3/rpcclient/cmd_wkssvc.c b/source3/rpcclient/cmd_wkssvc.c
index 1e64f384ae..69a3920c27 100644
--- a/source3/rpcclient/cmd_wkssvc.c
+++ b/source3/rpcclient/cmd_wkssvc.c
@@ -55,7 +55,7 @@ void cmd_wks_query_info(struct client_info *info)
fstrcat(dest_wks, info->dest_host);
strupper(dest_wks);
- if (next_token(NULL, tmp, NULL, sizeof(tmp)))
+ if (next_token_nr(NULL, tmp, NULL, sizeof(tmp)))
{
info_level = (uint32)strtol(tmp, (char**)NULL, 10);
}
diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c
index 82e1ba03ba..e8029dec49 100644
--- a/source3/rpcclient/rpcclient.c
+++ b/source3/rpcclient/rpcclient.c
@@ -358,13 +358,13 @@ static uint32 do_cmd(struct cli_state *cli, struct cmd_set *cmd_entry, char *cmd
pstring buf;
int argc = 1, i;
- next_token(&p, buf, " ", sizeof(buf));
+ next_token_nr(&p, buf, " ", sizeof(buf));
/* Count number of arguments first time through the loop then
allocate memory and strdup them. */
again:
- while(next_token(NULL, buf, " ", sizeof(buf))) {
+ while(next_token_nr(NULL, buf, " ", sizeof(buf))) {
if (argv) {
argv[argc] = strdup(buf);
}
@@ -384,7 +384,7 @@ static uint32 do_cmd(struct cli_state *cli, struct cmd_set *cmd_entry, char *cmd
}
p = cmd;
- next_token(&p, buf, " ", sizeof(buf));
+ next_token_nr(&p, buf, " ", sizeof(buf));
argv[0] = strdup(buf);
argc = 1;
@@ -425,7 +425,7 @@ static uint32 process_cmd(struct cli_state *cli, char *cmd)
if (cmd[strlen(cmd) - 1] == '\n')
cmd[strlen(cmd) - 1] = '\0';
- if (!next_token(&p, buf, " ", sizeof(buf))) {
+ if (!next_token_nr(&p, buf, " ", sizeof(buf))) {
return 0;
}