Possible bug in sftp v5 attrib processing?
Hi,
I'm working on SFTP v5 support in VShell, and I've got a bug (either yours or mine, I'm not sure which.)
I'm using Version 3.7.6 (Build 306)
First off, when I bring up the properties dialog on a file:
+ WinSCP doesn't send anything to the server
+ Group / Owner are blank
My guess is it is just using the information returned during the FXP_READDIR processing-- however, under windows, it is far too expensive to fetch the security information for every file during FXP_READDIR.
Maybe you could check the "supported" extension, and if it says it supports OWNER/GROUP but it didn't send it to you during READDIR, perform a stat operation and ask for it explicitly?
Now, on to the problem:
If I type a username into the dialog combo box for either goupr of owner, I get this:
+ WinSCP hits me with a lstat() request.
+ I then get a dialog saying:
"Cannot change properties of file
'tsvn_loop_scopes1.patch'"
"EAccessViolation"
The interesting section from the log is:
Changing properties of "tsvn_loop_scopes1.patch" (No)
- owner: "galb"
Type: SSH_FXP_LSTAT, Size: 64, Number: 4615
07,00,00,12,07,00,00,00,33,45,3A,2F,55,73,65,72,73,2F,47,61,6C,62,2F,45,3A,
2F,55,73,65,72,73,2F,47,61,6C,62,2F,74,73,76,6E,5F,6C,6F,6F,70,5F,73,63,6F,
70,65,73,31,2E,70,61,74,63,68,00,00,00,AD,
Sent 68 bytes
There are 0 bytes remaining in the send buffer
Received 4 bytes
Received 34 bytes
Type: SSH_FXP_STATUS, Size: 34, Number: 4356
65,00,00,11,04,00,00,00,00,00,00,00,0F,53,46,54,50,5F,49,5F,53,55,43,43,45,
53,53,20,00,00,00,02,65,6E,
Discarding reserved response
Waiting for another 4 bytes
Looking for incoming data
Select result is 1
Received 4 bytes
Received 112 bytes
Type: SSH_FXP_ATTRS, Size: 112, Number: 4615
69,00,00,12,07,00,00,03,B9,01,00,00,00,00,00,00,09,9C,00,00,00,13,67,61,6C,
62,40,75,74,2E,76,61,6E,64,79,6B,65,2E,63,6F,6D,00,00,00,1B,44,6F,6D,61,69,
6E,20,55,73,65,72,73,40,75,74,2E,76,61,6E,64,79,6B,65,2E,63,6F,6D,00,00,00,
00,43,06,9C,5C,11,96,3E,38,00,00,00,00,43,06,47,59,05,96,82,F0,00,00,00,00,
43,06,47,2F,21,87,11,A0,00,00,00,10,
Asking user:
Cannot change properties of file 'tsvn_loop_scopes1.patch'. (EAccessViolation)
I'm not sure what the STATUS packet is (I'm pretty sure my server didn't send a status during that time frame.)
Anyway, the EAccessViolation led me to hope maybe it wasn't my bug :-)
Thanks,
Joseph Galbraith
galb@vandyke.com
I'm working on SFTP v5 support in VShell, and I've got a bug (either yours or mine, I'm not sure which.)
I'm using Version 3.7.6 (Build 306)
First off, when I bring up the properties dialog on a file:
+ WinSCP doesn't send anything to the server
+ Group / Owner are blank
My guess is it is just using the information returned during the FXP_READDIR processing-- however, under windows, it is far too expensive to fetch the security information for every file during FXP_READDIR.
Maybe you could check the "supported" extension, and if it says it supports OWNER/GROUP but it didn't send it to you during READDIR, perform a stat operation and ask for it explicitly?
Now, on to the problem:
If I type a username into the dialog combo box for either goupr of owner, I get this:
+ WinSCP hits me with a lstat() request.
+ I then get a dialog saying:
"Cannot change properties of file
'tsvn_loop_scopes1.patch'"
"EAccessViolation"
The interesting section from the log is:
Changing properties of "tsvn_loop_scopes1.patch" (No)
- owner: "galb"
Type: SSH_FXP_LSTAT, Size: 64, Number: 4615
07,00,00,12,07,00,00,00,33,45,3A,2F,55,73,65,72,73,2F,47,61,6C,62,2F,45,3A,
2F,55,73,65,72,73,2F,47,61,6C,62,2F,74,73,76,6E,5F,6C,6F,6F,70,5F,73,63,6F,
70,65,73,31,2E,70,61,74,63,68,00,00,00,AD,
Sent 68 bytes
There are 0 bytes remaining in the send buffer
Received 4 bytes
Received 34 bytes
Type: SSH_FXP_STATUS, Size: 34, Number: 4356
65,00,00,11,04,00,00,00,00,00,00,00,0F,53,46,54,50,5F,49,5F,53,55,43,43,45,
53,53,20,00,00,00,02,65,6E,
Discarding reserved response
Waiting for another 4 bytes
Looking for incoming data
Select result is 1
Received 4 bytes
Received 112 bytes
Type: SSH_FXP_ATTRS, Size: 112, Number: 4615
69,00,00,12,07,00,00,03,B9,01,00,00,00,00,00,00,09,9C,00,00,00,13,67,61,6C,
62,40,75,74,2E,76,61,6E,64,79,6B,65,2E,63,6F,6D,00,00,00,1B,44,6F,6D,61,69,
6E,20,55,73,65,72,73,40,75,74,2E,76,61,6E,64,79,6B,65,2E,63,6F,6D,00,00,00,
00,43,06,9C,5C,11,96,3E,38,00,00,00,00,43,06,47,59,05,96,82,F0,00,00,00,00,
43,06,47,2F,21,87,11,A0,00,00,00,10,
Asking user:
Cannot change properties of file 'tsvn_loop_scopes1.patch'. (EAccessViolation)
I'm not sure what the STATUS packet is (I'm pretty sure my server didn't send a status during that time frame.)
Anyway, the EAccessViolation led me to hope maybe it wasn't my bug :-)
Thanks,
Joseph Galbraith
galb@vandyke.com