diff options
author | Sergei Antonov <saproj@gmail.com> | 2015-07-03 00:21:23 +0200 |
---|---|---|
committer | Brian C. Lane <bcl@redhat.com> | 2015-07-02 15:40:40 -0700 |
commit | 282e25e0384e8d1275ccacf904fdaf65f1d4a8af (patch) | |
tree | 906dedb911e9c6a0ac844a21ad98061af1ebe688 /libparted/labels/mac.c | |
parent | c6dc6e5d0f49a26242d2b28622514814a53d92e1 (diff) | |
download | parted-282e25e0384e8d1275ccacf904fdaf65f1d4a8af.tar.gz |
mac: copy partition type and name correctly
Use strncpy() instead of strcpy() to copy partition name and type.
This prevents possible buffer overflow, because the source string
occupies up to 33 bytes with a terminating null.
Static analysis tools complain about the code as it is now:
Function: _generate_raw_part
Destination buffer too small
string_overflow: You might overrun the 32 byte destination string
part_map_entry->type by writing 33 bytes from mac_part_data->system_name
(Destination buffer too small, line 933)
Cc: Sabas Rosales, Blanca E <blanca.e.sabas.rosales@intel.com>
Signed-off-by: Sergei Antonov <saproj@gmail.com>
Signed-off-by: Brian C. Lane <bcl@brianlane.com>
Diffstat (limited to 'libparted/labels/mac.c')
-rw-r--r-- | libparted/labels/mac.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libparted/labels/mac.c b/libparted/labels/mac.c index 1034418..d8da941 100644 --- a/libparted/labels/mac.c +++ b/libparted/labels/mac.c @@ -930,8 +930,8 @@ _generate_raw_part (PedDisk* disk, PedPartition* part, = PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num); part_map_entry->start_block = PED_CPU_TO_BE32 (part->geom.start); part_map_entry->block_count = PED_CPU_TO_BE32 (part->geom.length); - strcpy (part_map_entry->name, mac_part_data->volume_name); - strcpy (part_map_entry->type, mac_part_data->system_name); + strncpy (part_map_entry->name, mac_part_data->volume_name, 32); + strncpy (part_map_entry->type, mac_part_data->system_name, 32); if (mac_part_data->is_driver) { mac_part_data->boot_region_length = part->geom.length; |