From 3d0ecd37fe6b438a89ddc424fdd59a2689f96f2d Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 29 Apr 2020 17:10:08 +0200 Subject: [PATCH] options: Avoid memory leaks during modification of argv Signed-off-by: Jakub Jelen Reviewed-by: Andreas Schneider --- src/options.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/options.c b/src/options.c index f5c7bbb2..b2aeba89 100644 --- a/src/options.c +++ b/src/options.c @@ -1255,8 +1255,6 @@ int ssh_options_getopt(ssh_session session, int *argcptr, char **argv) break; default: { - char optv[3] = "- "; - optv[1] = optopt; tmp = realloc(save, (current + 1) * sizeof(char*)); if (tmp == NULL) { SAFE_FREE(save); @@ -1264,12 +1262,7 @@ int ssh_options_getopt(ssh_session session, int *argcptr, char **argv) return -1; } save = tmp; - save[current] = strdup(optv); - if (save[current] == NULL) { - SAFE_FREE(save); - ssh_set_error_oom(session); - return -1; - } + save[current] = argv[optind-1]; current++; /* We can not use optarg here as getopt does not set it for * unknown options. We need to manually extract following