fix(ssh): garbled output when directory has broken symlinks
The stderr was interleaving with the stdout when performing one of the ls operations. This was causing the parsing to sometimes fail and crash.
This commit is contained in:
parent
f3a31eba24
commit
bcfc0a2e01
1 changed files with 21 additions and 18 deletions
|
|
@ -175,7 +175,9 @@ function SSHFS:list_dir(url, path, callback)
|
||||||
if any_links then
|
if any_links then
|
||||||
-- If there were any soft links, then we need to run another ls command with -L so that we can
|
-- If there were any soft links, then we need to run another ls command with -L so that we can
|
||||||
-- resolve the type of the link target
|
-- resolve the type of the link target
|
||||||
self.conn:run("ls -aLl --color=never" .. path_postfix, function(link_err, link_lines)
|
self.conn:run(
|
||||||
|
"ls -aLl --color=never" .. path_postfix .. " 2> /dev/null",
|
||||||
|
function(link_err, link_lines)
|
||||||
-- Ignore exit code 1. That just means one of the links could not be resolved.
|
-- Ignore exit code 1. That just means one of the links could not be resolved.
|
||||||
if link_err and not link_err:match("^1:") then
|
if link_err and not link_err:match("^1:") then
|
||||||
return callback(link_err)
|
return callback(link_err)
|
||||||
|
|
@ -196,7 +198,8 @@ function SSHFS:list_dir(url, path, callback)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
callback(nil, cache_entries)
|
callback(nil, cache_entries)
|
||||||
end)
|
end
|
||||||
|
)
|
||||||
else
|
else
|
||||||
callback(nil, cache_entries)
|
callback(nil, cache_entries)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue