Patchwork [08/18] block/vvfat.c: fix warnings with _FORTIFY_SOURCE

login
register
mail settings
Submitter Kirill A. Shutemov
Date Dec. 20, 2009, 1:39 a.m.
Message ID <1261273167-3240-8-git-send-email-kirill@shutemov.name>
Download mbox | patch
Permalink /patch/41493/
State New
Headers show

Comments

Kirill A. Shutemov - Dec. 20, 2009, 1:39 a.m.
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 <kirill@shutemov.name>
---
 block/vvfat.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
Kevin Wolf - Dec. 20, 2009, 10:48 a.m.
Am Sonntag, 20. Dezember 2009 02:39 schrieb Kirill A. Shutemov:
>   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 <kirill@shutemov.name>
> ---
>  block/vvfat.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/block/vvfat.c b/block/vvfat.c
> index 063f731..7b6a405 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");
> +	snprintf((char*)entry->name,8,"QEMU VV");
> +	snprintf((char*)entry->extension,3,"FAT");
>      }
>  
>      /* Now build FAT, and write back information into directory */
> @@ -2256,7 +2257,7 @@ static int commit_one_file(BDRVVVFATState* s,
>  	c = c1;
>      }
>  
> -    ftruncate(fd, size);
> +    assert(!ftruncate(fd, size));

Don't use expressions with side effects for assertions. If anyone compiles 
with NDEBUG defined, the ftruncate will be missing.

Kevin

Patch

diff --git a/block/vvfat.c b/block/vvfat.c
index 063f731..7b6a405 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");
+	snprintf((char*)entry->name,8,"QEMU VV");
+	snprintf((char*)entry->extension,3,"FAT");
     }
 
     /* Now build FAT, and write back information into directory */
@@ -2256,7 +2257,7 @@  static int commit_one_file(BDRVVVFATState* s,
 	c = c1;
     }
 
-    ftruncate(fd, size);
+    assert(!ftruncate(fd, size));
     close(fd);
 
     return commit_mappings(s, first_cluster, dir_index);