X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/39934deb5202149f98198c111a35c21cb4d0d0f8..1e5eefb6f2677a50fdb158e25e59f075ec034d23:/psftp.h diff --git a/psftp.h b/psftp.h index 6ce24e8f..2f323c7b 100644 --- a/psftp.h +++ b/psftp.h @@ -35,8 +35,15 @@ int ssh_sftp_loop_iteration(void); /* * Read a command line for PSFTP from standard input. Caller must * free. + * + * If `backend_required' is TRUE, should also listen for activity + * at the backend (rekeys, clientalives, unexpected closures etc) + * and respond as necessary, and if the backend closes it should + * treat this as a failure condition. If `backend_required' is + * FALSE, a back end is not (intentionally) active at all (e.g. + * psftp before an `open' command). */ -char *ssh_sftp_get_cmdline(char *prompt); +char *ssh_sftp_get_cmdline(char *prompt, int backend_required); /* * The main program in psftp.c. Called from main() in the platform- @@ -143,6 +150,16 @@ char *wildcard_get_filename(WildcardMatcher *dir); void finish_wildcard_matching(WildcardMatcher *dir); /* + * Vet a filename returned from the remote host, to ensure it isn't + * in some way malicious. The idea is that this function is applied + * to filenames returned from FXP_READDIR, which means we can panic + * if we see _anything_ resembling a directory separator. + * + * Returns TRUE if the filename is kosher, FALSE if dangerous. + */ +int vet_filename(char *name); + +/* * Create a directory. Returns 0 on error, !=0 on success. */ int create_directory(char *name);