diff options
author | 2016-01-27 16:38:37 +0000 | |
---|---|---|
committer | 2016-01-27 16:38:37 +0000 | |
commit | f4081a220753e60fa588b8656e7555a04bc34d27 (patch) | |
tree | 141b62f76584a25f54fd25a83d59138b2631fa0f | |
parent | - sort options (diff) | |
download | wireguard-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.h | 8 | ||||
-rw-r--r-- | sbin/pdisk/io.c | 4 | ||||
-rw-r--r-- | sbin/pdisk/pdisk.c | 6 |
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); |