From: Shin'ichiro Kawasaki <[email protected]>

GCC 8 reports two warnings as follows.

r/fat/bootsector.c: In function 'fat_boot_sector_set_boot_code':
r/fat/bootsector.c:274:15: warning: unused variable 'fs_info' 
[-Wunused-variable]
  FatSpecific* fs_info = FAT_SPECIFIC (fs);
               ^~~~~~~
In function 'memcpy',
    inlined from 'fat_boot_sector_set_boot_code' at r/fat/bootsector.c:283:2:
/usr/include/bits/string_fortified.h:34:10: warning: '__builtin_memcpy' forming 
offset [126, 128] is out of the bounds [0, 125] [-Warray-bounds]
   return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To avoid the warnings, remove the unused variable. Use strcpy in place of
memcpy checking copy length.

Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
Signed-off-by: Brian C. Lane <[email protected]>
---
 libparted/fs/r/fat/bootsector.c | 5 ++---
 libparted/fs/r/fat/bootsector.h | 2 --
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/libparted/fs/r/fat/bootsector.c b/libparted/fs/r/fat/bootsector.c
index 46d5926..9130900 100644
--- a/libparted/fs/r/fat/bootsector.c
+++ b/libparted/fs/r/fat/bootsector.c
@@ -271,8 +271,6 @@ fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* 
fs)
 int
 fat_boot_sector_set_boot_code (FatBootSector** bsp, const PedFileSystem* fs)
 {
-       FatSpecific*    fs_info = FAT_SPECIFIC (fs);
-
        PED_ASSERT (bsp != NULL);
        *bsp = ped_malloc (fs->geom->dev->sector_size);
        FatBootSector *bs = *bsp;
@@ -280,7 +278,8 @@ fat_boot_sector_set_boot_code (FatBootSector** bsp, const 
PedFileSystem* fs)
 
        memset (bs, 0, 512);
        memcpy (bs->boot_jump, FAT_BOOT_JUMP, 3);
-       memcpy (bs->u.fat32.boot_code, FAT_BOOT_CODE, FAT_BOOT_CODE_LENGTH);
+       PED_ASSERT (sizeof(FAT_BOOT_CODE) < sizeof(bs->u.fat32.boot_code));
+       strcpy (bs->u.fat32.boot_code, FAT_BOOT_CODE);
        return 1;
 }
 
diff --git a/libparted/fs/r/fat/bootsector.h b/libparted/fs/r/fat/bootsector.h
index 6b0363f..42fc3f2 100644
--- a/libparted/fs/r/fat/bootsector.h
+++ b/libparted/fs/r/fat/bootsector.h
@@ -57,8 +57,6 @@ typedef struct _FatInfoSector FatInfoSector;
                                        /* message: */                  \
                        FAT_BOOT_MESSAGE
 
-#define FAT_BOOT_CODE_LENGTH 128
-
 struct __attribute__ ((packed)) _FatBootSector {
         uint8_t                boot_jump[3];   /* 00: Boot strap short or near 
jump */
         uint8_t                system_id[8];   /* 03: system name */
-- 
2.26.2


Reply via email to