mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
It's not actually legal by the C standard to call qsort with a null
array pointer, _even_ if you're asking it to sort zero elements so that in principle it should never dereference that pointer. Fix the four instances in PSCP/PSFTP where this was previously occurring. [originally from svn r9912]
This commit is contained in:
parent
84fed5c620
commit
779466f0b0
3
pscp.c
3
pscp.c
@ -765,7 +765,8 @@ void scp_sftp_listdir(char *dirname)
|
|||||||
* Now we have our filenames. Sort them by actual file
|
* Now we have our filenames. Sort them by actual file
|
||||||
* name, and then output the longname parts.
|
* name, and then output the longname parts.
|
||||||
*/
|
*/
|
||||||
qsort(ournames, nnames, sizeof(*ournames), sftp_ls_compare);
|
if (nnames > 0)
|
||||||
|
qsort(ournames, nnames, sizeof(*ournames), sftp_ls_compare);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* And print them.
|
* And print them.
|
||||||
|
9
psftp.c
9
psftp.c
@ -327,7 +327,8 @@ int sftp_get_file(char *fname, char *outfname, int recurse, int restart)
|
|||||||
* readdirs on the same remote directory return a
|
* readdirs on the same remote directory return a
|
||||||
* different order.
|
* different order.
|
||||||
*/
|
*/
|
||||||
qsort(ournames, nnames, sizeof(*ournames), sftp_name_compare);
|
if (nnames > 0)
|
||||||
|
qsort(ournames, nnames, sizeof(*ournames), sftp_name_compare);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we're in restart mode, find the last filename on
|
* If we're in restart mode, find the last filename on
|
||||||
@ -570,7 +571,8 @@ int sftp_put_file(char *fname, char *outfname, int recurse, int restart)
|
|||||||
* same directory, just in case two readdirs on the same
|
* same directory, just in case two readdirs on the same
|
||||||
* local directory return a different order.
|
* local directory return a different order.
|
||||||
*/
|
*/
|
||||||
qsort(ournames, nnames, sizeof(*ournames), bare_name_compare);
|
if (nnames > 0)
|
||||||
|
qsort(ournames, nnames, sizeof(*ournames), bare_name_compare);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we're in restart mode, find the last filename on this
|
* If we're in restart mode, find the last filename on this
|
||||||
@ -1093,7 +1095,8 @@ int sftp_cmd_ls(struct sftp_command *cmd)
|
|||||||
* Now we have our filenames. Sort them by actual file
|
* Now we have our filenames. Sort them by actual file
|
||||||
* name, and then output the longname parts.
|
* name, and then output the longname parts.
|
||||||
*/
|
*/
|
||||||
qsort(ournames, nnames, sizeof(*ournames), sftp_name_compare);
|
if (nnames > 0)
|
||||||
|
qsort(ournames, nnames, sizeof(*ournames), sftp_name_compare);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* And print them.
|
* And print them.
|
||||||
|
Loading…
Reference in New Issue
Block a user