1
1

options: Avoid memory leaks during modification of argv

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Jakub Jelen 2020-04-29 17:10:08 +02:00 коммит произвёл Andreas Schneider
родитель 2e7ca3e8a6
Коммит 3d0ecd37fe

Просмотреть файл

@ -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