*/
static struct cmdline_saved_param_set saves[NPRIORITIES];
-static void cmdline_save_param(char *p, char *value, int pri)
+static void cmdline_save_param(const char *p, const char *value, int pri)
{
if (saves[pri].nsaved >= saves[pri].savesize) {
saves[pri].savesize = saves[pri].nsaved + 32;
saves[pri].params = sresize(saves[pri].params, saves[pri].savesize,
struct cmdline_saved_param);
}
- saves[pri].params[saves[pri].nsaved].p = p;
- saves[pri].params[saves[pri].nsaved].value = value;
+ saves[pri].params[saves[pri].nsaved].p = dupstr(p);
+ saves[pri].params[saves[pri].nsaved].value = dupstr(value);
saves[pri].nsaved++;
}
* return means that we aren't capable of processing the prompt and
* someone else should do it.
*/
-int cmdline_get_passwd_input(prompts_t *p, unsigned char *in, int inlen) {
-
+int cmdline_get_passwd_input(prompts_t *p, const unsigned char *in, int inlen)
+{
static int tried_once = 0;
/*
*/
int cmdline_tooltype = 0;
-static int cmdline_check_unavailable(int flag, char *p)
+static int cmdline_check_unavailable(int flag, const char *p)
{
if (cmdline_tooltype & flag) {
cmdline_error("option \"%s\" not available in this tool", p);
if (need_save < 0) return x; \
} while (0)
-int cmdline_process_param(char *p, char *value, int need_save, Conf *conf)
+int cmdline_process_param(const char *p, char *value,
+ int need_save, Conf *conf)
{
int ret = 0;
sfree(host);
}
if (!strcmp(p, "-m")) {
- char *filename, *command;
+ const char *filename;
+ char *command;
int cmdlen, cmdsize;
FILE *fp;
int c, d;
void cmdline_run_saved(Conf *conf)
{
int pri, i;
- for (pri = 0; pri < NPRIORITIES; pri++)
- for (i = 0; i < saves[pri].nsaved; i++)
+ for (pri = 0; pri < NPRIORITIES; pri++) {
+ for (i = 0; i < saves[pri].nsaved; i++) {
cmdline_process_param(saves[pri].params[i].p,
saves[pri].params[i].value, 0, conf);
+ sfree(saves[pri].params[i].p);
+ sfree(saves[pri].params[i].value);
+ }
+ saves[pri].nsaved = 0;
+ }
}