aboutsummaryrefslogtreecommitdiff
path: root/crypto/openssh/sftp.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssh/sftp.c')
-rw-r--r--crypto/openssh/sftp.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/crypto/openssh/sftp.c b/crypto/openssh/sftp.c
index b3616c15cd09..29081db3d434 100644
--- a/crypto/openssh/sftp.c
+++ b/crypto/openssh/sftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp.c,v 1.225 2023/01/05 05:49:13 djm Exp $ */
+/* $OpenBSD: sftp.c,v 1.229 2023/03/12 09:41:18 dtucker Exp $ */
/*
* Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
*
@@ -217,7 +217,6 @@ static const struct CMD cmds[] = {
{ NULL, -1, -1, -1 }
};
-/* ARGSUSED */
static void
killchild(int signo)
{
@@ -232,7 +231,6 @@ killchild(int signo)
_exit(1);
}
-/* ARGSUSED */
static void
suspchild(int signo)
{
@@ -244,7 +242,6 @@ suspchild(int signo)
kill(getpid(), SIGSTOP);
}
-/* ARGSUSED */
static void
cmd_interrupt(int signo)
{
@@ -256,14 +253,12 @@ cmd_interrupt(int signo)
errno = olderrno;
}
-/* ARGSUSED */
static void
read_interrupt(int signo)
{
interrupted = 1;
}
-/*ARGSUSED*/
static void
sigchld_handler(int sig)
{
@@ -1012,7 +1007,7 @@ do_globbed_ls(struct sftp_conn *conn, const char *path,
*/
for (nentries = 0; g.gl_pathv[nentries] != NULL; nentries++)
; /* count entries */
- indices = calloc(nentries, sizeof(*indices));
+ indices = xcalloc(nentries, sizeof(*indices));
for (i = 0; i < nentries; i++)
indices[i] = i;
@@ -1030,6 +1025,7 @@ do_globbed_ls(struct sftp_conn *conn, const char *path,
if (lflag & LS_LONG_VIEW) {
if (g.gl_statv[i] == NULL) {
error("no stat information for %s", fname);
+ free(fname);
continue;
}
lname = ls_file(fname, g.gl_statv[i], 1,
@@ -2001,7 +1997,9 @@ complete_match(EditLine *el, struct sftp_conn *conn, char *remote_path,
memset(&g, 0, sizeof(g));
if (remote != LOCAL) {
- tmp = make_absolute_pwd_glob(tmp, remote_path);
+ tmp2 = make_absolute_pwd_glob(tmp, remote_path);
+ free(tmp);
+ tmp = tmp2;
remote_glob(conn, tmp, GLOB_DOOFFS|GLOB_MARK, NULL, &g);
} else
glob(tmp, GLOB_DOOFFS|GLOB_MARK, NULL, &g);