1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

r26453: Janitorial: Don't use a static char[] in smb_readline_replacement.

Fix up callers to free the memory returned, as that is needed if we use the
original readline function as well.
(This used to be commit c81ead1c38)
This commit is contained in:
Kai Blin
2007-12-14 14:04:56 +01:00
committed by Stefan Metzmacher
parent d8feba9faf
commit 43ac3d9b44
5 changed files with 19 additions and 6 deletions

View File

@ -3007,6 +3007,8 @@ static int process_stdin(struct smbclient_context *ctx)
}
rc |= process_command_string(ctx, cline);
free(cline);
}
return rc;

View File

@ -546,12 +546,16 @@ int main(int argc, char **argv)
via readline :-( */
line = smb_readline(prompt, NULL, reg_completion);
if (line == NULL)
if (line == NULL) {
free(prompt);
break;
}
if (line[0] != '\n') {
ret = W_ERROR_IS_OK(process_cmd(ctx, line));
}
free(line);
free(prompt);
}
talloc_free(ctx);

View File

@ -77,13 +77,18 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void)
char **(completion_fn)(const char *text, int start, int end))
{
fd_set fds;
static char line[1024];
char *line;
struct timeval timeout;
int fd = STDIN_FILENO;
char *ret;
do_debug("%s", prompt);
line = (char *)malloc(BUFSIZ);
if (!line) {
return NULL;
}
while (1) {
timeout.tv_sec = 5;
timeout.tv_usec = 0;
@ -92,7 +97,7 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void)
FD_SET(fd,&fds);
if (sys_select_intr(fd+1,&fds,NULL,NULL,&timeout) == 1) {
ret = x_fgets(line, sizeof(line), x_stdin);
ret = x_fgets(line, BUFSIZ, x_stdin);
return ret;
}
if (callback)

View File

@ -824,6 +824,7 @@ static bool test_SetAliasInfo(struct dcerpc_pipe *p, struct torture_context *tct
case ALIASINFONAME: init_lsa_String(&r.in.info->name,TEST_ALIASNAME); break;
case ALIASINFODESCRIPTION: init_lsa_String(&r.in.info->description,
"Test Description, should test I18N as well"); break;
case ALIASINFOALL: printf("ALIASINFOALL ignored\n"); break;
}
status = dcerpc_samr_SetAliasInfo(p, tctx, &r);

View File

@ -500,6 +500,7 @@ void run_shell(struct torture_context *tctx)
run_test(tctx, argv[1]);
}
}
free(cline);
}
}