summaryrefslogtreecommitdiffstats
path: root/sftp-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'sftp-client.c')
-rw-r--r--sftp-client.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sftp-client.c b/sftp-client.c
index fa4a47cc..6ac293c2 100644
--- a/sftp-client.c
+++ b/sftp-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp-client.c,v 1.159 2022/01/08 07:34:57 djm Exp $ */
+/* $OpenBSD: sftp-client.c,v 1.160 2022/01/08 07:37:32 djm Exp $ */
/*
* Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
*
@@ -1009,10 +1009,14 @@ do_realpath_expand(struct sftp_conn *conn, const char *path, int expand)
if (type == SSH2_FXP_STATUS) {
u_int status;
+ char *errmsg;
- if ((r = sshbuf_get_u32(msg, &status)) != 0)
+ if ((r = sshbuf_get_u32(msg, &status)) != 0 ||
+ (r = sshbuf_get_cstring(msg, &errmsg, NULL)) != 0)
fatal_fr(r, "parse status");
- error("canonicalize %s: %s", path, fx2txt(status));
+ error("%s %s: %s", expand ? "expand" : "realpath",
+ path, *errmsg == '\0' ? fx2txt(status) : errmsg);
+ free(errmsg);
sshbuf_free(msg);
return NULL;
} else if (type != SSH2_FXP_NAME)