Don't leak if arguments appear multiple times, from Tiago Cunha.

pull/1/head
Nicholas Marriott 2010-01-23 17:50:56 +00:00
parent 8865eb2866
commit c0d3e4315c
3 changed files with 8 additions and 4 deletions

View File

@ -79,7 +79,8 @@ cmd_bind_key_parse(struct cmd *self, int argc, char **argv, char **cause)
data->can_repeat = 1;
break;
case 't':
data->tablename = xstrdup(optarg);
if (data->tablename == NULL)
data->tablename = xstrdup(optarg);
break;
default:
goto usage;

View File

@ -61,10 +61,12 @@ cmd_switch_client_parse(struct cmd *self, int argc, char **argv, char **cause)
while ((opt = getopt(argc, argv, "c:t:")) != -1) {
switch (opt) {
case 'c':
data->name = xstrdup(optarg);
if (data->name == NULL)
data->name = xstrdup(optarg);
break;
case 't':
data->target = xstrdup(optarg);
if (data->target == NULL)
data->target = xstrdup(optarg);
break;
default:
goto usage;

View File

@ -67,7 +67,8 @@ cmd_unbind_key_parse(struct cmd *self, int argc, char **argv, char **cause)
no_prefix = 1;
break;
case 't':
data->tablename = xstrdup(optarg);
if (data->tablename == NULL)
data->tablename = xstrdup(optarg);
break;
default:
goto usage;