qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH 07/17] block/vvfat.c: fix warnings with _FORTIFY


From: Kirill A. Shutemov
Subject: [Qemu-devel] Re: [PATCH 07/17] block/vvfat.c: fix warnings with _FORTIFY_SOURCE
Date: Wed, 20 Jan 2010 08:19:26 +0200

On Wed, Jan 20, 2010 at 1:56 AM, Juan Quintela <address@hidden> wrote:
> From: Kirill A. Shutemov <address@hidden>
>
> CC    block/vvfat.o
> cc1: warnings being treated as errors
> block/vvfat.c: In function 'commit_one_file':
> block/vvfat.c:2259: error: ignoring return value of 'ftruncate', declared 
> with attribute warn_unused_result
> make: *** [block/vvfat.o] Error 1
>  CC    block/vvfat.o
> In file included from /usr/include/stdio.h:912,
>                 from ./qemu-common.h:19,
>                 from block/vvfat.c:27:
> In function 'snprintf',
>    inlined from 'init_directories' at block/vvfat.c:871,
>    inlined from 'vvfat_open' at block/vvfat.c:1068:
> /usr/include/bits/stdio2.h:65: error: call to __builtin___snprintf_chk will 
> always overflow destination buffer
> make: *** [block/vvfat.o] Error 1
>
> Signed-off-by: Kirill A. Shutemov <address@hidden>
> Signed-off-by: Juan Quintela <address@hidden>
> ---
>  block/vvfat.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/block/vvfat.c b/block/vvfat.c
> index 063f731..df957e5 100644
> --- a/block/vvfat.c
> +++ b/block/vvfat.c
> @@ -868,7 +868,8 @@ static int init_directories(BDRVVVFATState* s,
>     {
>        direntry_t* entry=array_get_next(&(s->directory));
>        entry->attributes=0x28; /* archive | volume label */
> -       snprintf((char*)entry->name,11,"QEMU VVFAT");
> +       memcpy(entry->name,"QEMU VVF",8);
> +       memcpy(entry->extension,"AT ",3);
>     }

Better to use

memcpy(entry->name, "QEMU VVFAT", 11);

memcpy() doesn't check bounds.

>     /* Now build FAT, and write back information into directory */
> @@ -2256,7 +2257,11 @@ static int commit_one_file(BDRVVVFATState* s,
>        c = c1;
>     }
>
> -    ftruncate(fd, size);
> +    if (ftruncate(fd, size)) {
> +        perror("ftruncate()");
> +        close(fd);
> +        return -4;
> +    }
>     close(fd);
>
>     return commit_mappings(s, first_cluster, dir_index);
> --
> 1.6.5.2
>
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]