summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2016-01-27 16:38:37 +0000
committerkrw <krw@openbsd.org>2016-01-27 16:38:37 +0000
commitf4081a220753e60fa588b8656e7555a04bc34d27 (patch)
tree141b62f76584a25f54fd25a83d59138b2631fa0f
parent- sort options (diff)
downloadwireguard-openbsd-f4081a220753e60fa588b8656e7555a04bc34d27.tar.xz
wireguard-openbsd-f4081a220753e60fa588b8656e7555a04bc34d27.zip
On-disk partition name/types/processorid may or may not be NUL
terminated after all. So add an extra byte for a NUL in the in-memory struct's.
-rw-r--r--sbin/pdisk/dpme.h8
-rw-r--r--sbin/pdisk/io.c4
-rw-r--r--sbin/pdisk/pdisk.c6
3 files changed, 9 insertions, 9 deletions
diff --git a/sbin/pdisk/dpme.h b/sbin/pdisk/dpme.h
index 68771dc6db8..d93b459fda8 100644
--- a/sbin/pdisk/dpme.h
+++ b/sbin/pdisk/dpme.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dpme.h,v 1.22 2016/01/27 14:19:59 krw Exp $ */
+/* $OpenBSD: dpme.h,v 1.23 2016/01/27 16:38:37 krw Exp $ */
/*
* dpme.h - Disk Partition Map Entry (dpme)
@@ -74,8 +74,8 @@ struct dpme {
uint32_t dpme_map_entries; /* # of partition entries */
uint32_t dpme_pblock_start; /* physical block start of partition */
uint32_t dpme_pblocks; /* physical block count of partition */
- char dpme_name[DPISTRLEN]; /* name of partition */
- char dpme_type[DPISTRLEN]; /* type of partition */
+ char dpme_name[DPISTRLEN+1]; /* name of partition + NUL */
+ char dpme_type[DPISTRLEN+1]; /* type of partition + NUL */
uint32_t dpme_lblock_start; /* logical block start of partition */
uint32_t dpme_lblocks; /* logical block count of partition */
uint32_t dpme_flags;
@@ -95,7 +95,7 @@ struct dpme {
uint32_t dpme_goto_addr; /* memory jump address of boot code */
uint8_t dpme_reserved_3[4];
uint32_t dpme_checksum; /* of the boot code. */
- char dpme_processor_id[16]; /* processor type */
+ char dpme_processor_id[17]; /* processor type + NUL */
uint8_t dpme_reserved_4[376];
};
diff --git a/sbin/pdisk/io.c b/sbin/pdisk/io.c
index 518039f3812..53b99a0bdc2 100644
--- a/sbin/pdisk/io.c
+++ b/sbin/pdisk/io.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: io.c,v 1.26 2016/01/27 00:26:33 krw Exp $ */
+/* $OpenBSD: io.c,v 1.27 2016/01/27 16:38:37 krw Exp $ */
/*
* io.c - simple io and input parsing routines
@@ -244,7 +244,7 @@ get_dpistr_argument(const char *prompt)
char *
get_string(int eos)
{
- char buf[DPISTRLEN];
+ char buf[DPISTRLEN+1];
char *s, *limit;
int c;
diff --git a/sbin/pdisk/pdisk.c b/sbin/pdisk/pdisk.c
index 8451b4e759f..87e29cb7134 100644
--- a/sbin/pdisk/pdisk.c
+++ b/sbin/pdisk/pdisk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pdisk.c,v 1.74 2016/01/27 14:47:53 krw Exp $ */
+/* $OpenBSD: pdisk.c,v 1.75 2016/01/27 16:38:37 krw Exp $ */
/*
* pdisk - an editor for Apple format partition tables
@@ -362,7 +362,7 @@ do_rename_partition(struct partition_map_header *map)
* current contents are zapped before copying in new name!
*/
memset(entry->dpme->dpme_name, 0, sizeof(entry->dpme->dpme_name));
- strlcpy(entry->dpme->dpme_name, name, DPISTRLEN);
+ strlcpy(entry->dpme->dpme_name, name, sizeof(entry->dpme->dpme_name));
map->changed = 1;
free(name);
@@ -398,7 +398,7 @@ do_change_type(struct partition_map_header *map)
* current contents are zapped before copying in new type!
*/
memset(entry->dpme->dpme_type, 0, sizeof(entry->dpme->dpme_type));
- strncpy(entry->dpme->dpme_type, type, DPISTRLEN);
+ strncpy(entry->dpme->dpme_type, type, sizeof(entry->dpme->dpme_type));
map->changed = 1;
free(type);