On Tue, 31 Aug 2010, Uli Zappe wrote:

The reason for this is the if clause in lines 614-630 in src/scp.c (libssh2-1.2.7). It returns

  LIBSSH2_ERROR_SCP_PROTOCOL, "Invalid data in SCP response"

as soon as a character > 126 surfaces in the sshd response, which it will do for every 8-bit or UTF-8 file name with a non-ASCII character.

Quite clearly. I don't understand that limitation - and I find it funny that nobody else before noticed.

I guess a problem is that SCP is not a standard thing. It would be worthwhile to check how OpenSSH actually provides file names with non-ascii letters. I mean, if it truly is 8bit then surely the < 32 check is wrong as well?

Indeed, as soon as I changed "126" to "256" in line 626, scp worked just fine with 8-bit and UTF-8 file names, and I could not find any problem whatsoever.

Uhm, UTF-8 file names can surely have bytes below 32, right? In fact, UTF-8 can even contain the bytes 0x0a and 0x0d so the checks for the end of line is then not good enough.

So why this seemingly unnecessary limitation?

An oversight I'd guess. It's been like this for ages.

Nice catch! Now we only need to figure out the right fix...

--

 / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Reply via email to