[Spice-devel] [PATCH vd_agent_win] Use sprintf_s instead of sprintf to not crash
Frediano Ziglio
fziglio at redhat.com
Wed May 17 15:58:52 UTC 2017
>
> ---
> vdagent/file_xfer.cpp | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/vdagent/file_xfer.cpp b/vdagent/file_xfer.cpp
> index de1aea1..de98d50 100644
> --- a/vdagent/file_xfer.cpp
> +++ b/vdagent/file_xfer.cpp
> @@ -113,8 +113,8 @@ void FileXfer::handle_start(VDAgentFileXferStartMessage*
> start,
> if (attempt == 0) {
> strcpy(dest_filename, file_name);
> } else {
> - sprintf(dest_filename, "%.*s (%d)%s", int(extension -
> file_name), file_name,
> - attempt, extension);
> + sprintf_s(dest_filename, SPICE_N_ELEMENTS(file_name) +
> POSTFIX_LEN,
> + "%.*s (%d)%s", int(extension - file_name), file_name,
> attempt, extension);
> }
> if ((MultiByteToWideChar(CP_UTF8, 0, dest_filename, -1, file_path +
> wlen, MAX_PATH - wlen)) == 0) {
> vd_printf("failed converting file_name:%s to WideChar",
> dest_filename);
As far as I know dest_filename is allocate big enough to avoid the
overflow.
Did it crash for you or just a warning from the compiler?
This would be easier
sprintf_s(dest_filename, SPICE_N_ELEMENTS(dest_filename),
"%.*s (%d)%s", int(extension - file_name), file_name, attempt, extension);
without computing again the length.
Frediano
More information about the Spice-devel
mailing list