Re: [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var

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

 



On 2017.02.20 14:58:25 +0100, Takashi Iwai wrote:
> send_display_send_uevent() sends two environment variable, and the
> first one GVT_DISPLAY_READY is set including a new line at the end of
> the string; that is obviously superfluous and wrong -- at least, it
> *looks* so when you only read the code.
> 
> However, it doesn't appear in the actual output by a (supposedly
> unexpected) trick.  The code uses snprintf() and truncates the string
> in size 20 bytes.  This makes the string as GVT_DISPLAY_READY=0 or
> ...=1 including the trailing NUL-letter.  That is, the '\n' found in
> the format string is always cut off as a result.
> 
> Although the code gives the correct result, it is confusing.  This
> patch addresses it, just removing the superfluous '\n' from the format
> string for avoiding further confusion.  If the argument "ready" were
> not a  bool, the size 20 should be corrected as well.  But it's a
> bool, so we can leave the magic number 20 as is for now.
> 
> FWIW, the bug was spotted by a new GCC7 warning:
>   drivers/gpu/drm/i915/gvt/handlers.c: In function 'pvinfo_mmio_write':
>   drivers/gpu/drm/i915/gvt/handlers.c:1042:34: error: 'snprintf' output truncated before the last format character [-Werror=format-truncation=]
>     snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
>                                     ^~~~~~~~~~~~~~~~~~~~~~~~
>   drivers/gpu/drm/i915/gvt/handlers.c:1042:2: note: 'snprintf' output 21 bytes into a destination of size 20
>     snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Fixes: 04d348ae3f0a ("drm/i915/gvt: vGPU display virtualization")
> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1025903
> Reported-by: Richard Biener <rguenther@xxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> ---

Applied. Thanks!

>  drivers/gpu/drm/i915/gvt/handlers.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
> index 1d450627ff65..845aa1511cbf 100644
> --- a/drivers/gpu/drm/i915/gvt/handlers.c
> +++ b/drivers/gpu/drm/i915/gvt/handlers.c
> @@ -1039,7 +1039,7 @@ static int send_display_ready_uevent(struct intel_vgpu *vgpu, int ready)
>  	char vmid_str[20];
>  	char display_ready_str[20];
>  
> -	snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
> +	snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d", ready);
>  	env[0] = display_ready_str;
>  
>  	snprintf(vmid_str, 20, "VMID=%d", vgpu->id);
> -- 
> 2.11.1
> 
> _______________________________________________
> intel-gvt-dev mailing list
> intel-gvt-dev@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux