tcsh is not handled correctly UTF-8 in arguments
Slawa Olhovchenkov
slw at zxy.spb.ru
Wed Oct 19 17:10:31 UTC 2016
tcsh called by sshd for invocation of scp: `tcsh -c scp -f Расписание.pdf`
At this time no any LC_* is set.
tcsh read .cshrc and set LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8.
After this invocation of scp will be incorrect:
00007ab0 20 2d 66 20 c3 90 c2 a0 c3 90 c2 b0 c3 91 c2 81 | -f ............|
00007ac0 c3 90 c2 bf c3 90 c2 b8 c3 91 c2 81 c3 90 c2 b0 |................|
00007ad0 c3 90 c2 bd c3 90 c2 b8 c3 90 c2 b5 5f c3 90 c2 |............_...|
00007ae0 a2 c3 90 c2 97 c3 90 c2 98 2e 70 64 66 0a |..........pdf. |
Correct invocation must be:
00000000 20 2d 66 20 | -f |
00000010 d0 a0 d0 b0 d1 81 d0 bf d0 b8 d1 81 d0 b0 d0 bd |................|
00000020 d0 b8 d0 b5 5f d0 a2 d0 97 d0 98 2e 70 64 66 0a |...._.......pdf.|
`d0` => `c3 90`
`a0` => `c2 a0`
I.e. every byte re-encoded to utf-8: `d0` => `c3 90`
As result imposible to access files w/ non-ascii names.
More information about the freebsd-stable
mailing list