Re: [PATCH kvmtool v2 1/3] builtin-run: Fix warning when resolving path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon,  4 Feb 2019 10:59:42 +0100
Anisse Astier <aastier@xxxxxxxxxx> wrote:

> GCC 8.2 gives this warning:
> 
> builtin-run.c: In function ‘kvm_run_write_sandbox_cmd.isra.1’:
> builtin-run.c:417:28: error: ‘%s’ directive output may be truncated
> writing up to 4095 bytes into a region of size 4091
> [-Werror=format-truncation=] snprintf(dst, len, "/host%s",
> resolved_path); ^~   ~~~~~~~~~~~~~
> 
> It's because it understands that len is PATH_MAX, the same as
> resolved_path's size. This patch handles the case where the string is
> truncated, and fixes the warning.
> 
> Signed-off-by: Anisse Astier <aastier@xxxxxxxxxx>

Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx>

Thanks,
Andre,

> ---
>  builtin-run.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/builtin-run.c b/builtin-run.c
> index 82e2b2e..463a481 100644
> --- a/builtin-run.c
> +++ b/builtin-run.c
> @@ -414,7 +414,9 @@ static void resolve_program(const char *src, char *dst, size_t len)
>  		if (!realpath(src, resolved_path))
>  			die("Unable to resolve program %s: %s\n", src, strerror(errno)); 
> -		snprintf(dst, len, "/host%s", resolved_path);
> +		if (snprintf(dst, len, "/host%s", resolved_path) >= (int)len)
> +			die("Pathname too long: %s -> %s\n", src, resolved_path);
> +
>  	} else
>  		strncpy(dst, src, len);
>  }




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux