On Fri, Aug 04, 2017 at 16:22:34 +0200, Michal Privoznik wrote:
> After reading the contents of a file some cleanup is performed.
> However, the check for it might access a byte outside of the
> string - if the file is empty in the first place. Then strlen()
> is zero.
> 
> Signed-off-by: Michal Privoznik <mpriv...@redhat.com>
> ---
>  tests/testutils.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tests/testutils.c b/tests/testutils.c
> index 71692f1fa..4bb6140ec 100644
> --- a/tests/testutils.c
> +++ b/tests/testutils.c
> @@ -796,6 +796,7 @@ virTestCompareToFile(const char *strcontent,
>          goto failure;
>  
>      if (filecontent &&
> +        strlen(filecontent) > 0 &&

I'd store the length in a variable ...

>          filecontent[strlen(filecontent) - 1] == '\n' &&

... so that it's not evaluated twice.

>          strcontent[strlen(strcontent) - 1] != '\n') {
>          if (virAsprintf(&fixedcontent, "%s\n", strcontent) < 0)

ACK with that.

Attachment: signature.asc
Description: PGP signature

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to