mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-15 18:17:32 -05:00
pscp: replace crash with diagnostic on opendir failure.
A user points out that the call to close_directory() in pscp.c's rsource() function should have been inside rather than outside the if statement that checks whether the directory handle is NULL. As a result, any failed attempt to open a directory during a 'pscp -r' recursive upload leads to a null-pointer dereference. Moved the close_directory call to where it should be, and also arranged to print the OS error code if the directory-open fails, by also changing the API of open_directory to return an error string on failure.
This commit is contained in:
2
psftp.h
2
psftp.h
@ -127,7 +127,7 @@ int file_type(const char *name);
|
||||
* Read all the file names out of a directory.
|
||||
*/
|
||||
typedef struct DirHandle DirHandle;
|
||||
DirHandle *open_directory(const char *name);
|
||||
DirHandle *open_directory(const char *name, const char **errmsg);
|
||||
/* The string returned from this will need freeing if not NULL */
|
||||
char *read_filename(DirHandle *dir);
|
||||
void close_directory(DirHandle *dir);
|
||||
|
Reference in New Issue
Block a user