summaryrefslogtreecommitdiffstats
path: root/cmd-switch-client.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2010-01-25 17:12:44 +0000
committerTiago Cunha <tcunha@gmx.com>2010-01-25 17:12:44 +0000
commitc744964cd96554415a8a707c47eef3e0db0a60af (patch)
tree4fb116b3e06c5f65512bb0cdfa1d174b0d150e14 /cmd-switch-client.c
parent05e5bc78820633c152c15a305f12d849f0ed0b83 (diff)
Sync OpenBSD patchset 614:
Don't leak if arguments appear multiple times, from Tiago Cunha.
Diffstat (limited to 'cmd-switch-client.c')
-rw-r--r--cmd-switch-client.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/cmd-switch-client.c b/cmd-switch-client.c
index 4edaccf6..09addc30 100644
--- a/cmd-switch-client.c
+++ b/cmd-switch-client.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-switch-client.c,v 1.18 2009-11-14 17:56:39 tcunha Exp $ */
+/* $Id: cmd-switch-client.c,v 1.19 2010-01-25 17:12:44 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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;