In the pull request at erlang/otp#8537, specifically in commit erlang/otp@8d537f5, the CWD is rebuilt using filename:join/2. However, dest_path was not converted from binary to charlist:
|
defp extract_from_zip(path, file_list, :memory), do: :zip.extract(path, [{:file_list, file_list}, :memory]) |
|
defp extract_from_zip(path, file_list, {:file, dest_path}), do: :zip.extract(path, [{:file_list, file_list}, {:cwd, dest_path}]) |
As a result,
filename:join/2 returns a binary filename that fails to concatenate with
TrailingSlash, which is a charlist:
https://github.com/erlang/otp/blob/94d3cd6/lib/stdlib/src/zip.erl#L2330
In the pull request at erlang/otp#8537, specifically in commit erlang/otp@8d537f5, the
CWDis rebuilt usingfilename:join/2. However,dest_pathwas not converted from binary to charlist:xlsxir/lib/xlsxir/unzip.ex
Lines 153 to 154 in 4dbebf2
As a result,
filename:join/2returns a binary filename that fails to concatenate withTrailingSlash, which is a charlist: https://github.com/erlang/otp/blob/94d3cd6/lib/stdlib/src/zip.erl#L2330