diff options
author | Werner Koch <[email protected]> | 2016-07-01 13:18:59 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-07-01 14:27:43 +0000 |
commit | d8bce478be3ae9e401841a77d189ef3c81ccb757 (patch) | |
tree | 20cc4a72bd223e514c19a7f3c55bab0ab7eaf24d | |
parent | common: Add function to select records etc. (diff) | |
download | gnupg-d8bce478be3ae9e401841a77d189ef3c81ccb757.tar.gz gnupg-d8bce478be3ae9e401841a77d189ef3c81ccb757.zip |
gpg: Make sure a user ID packet has always a terminating Nul in memory.
* g10/keygen.c (write_uid): Avoid overflow.
--
Also the actual length if the user ID is given by LEN, using NAME
diretcly is often more convenient.
-rw-r--r-- | g10/keygen.c | 2 | ||||
-rw-r--r-- | g10/packet.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index 3a9a8e7cb..2b3d32886 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -202,7 +202,7 @@ write_uid( KBNODE root, const char *s ) size_t n = strlen(s); pkt->pkttype = PKT_USER_ID; - pkt->pkt.user_id = xmalloc_clear( sizeof *pkt->pkt.user_id + n - 1 ); + pkt->pkt.user_id = xmalloc_clear (sizeof *pkt->pkt.user_id + n); pkt->pkt.user_id->len = n; pkt->pkt.user_id->ref = 1; strcpy(pkt->pkt.user_id->name, s); diff --git a/g10/packet.h b/g10/packet.h index 0ff28c82b..a496c4b21 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -293,7 +293,7 @@ typedef struct } flags; /* The text contained in the user id packet, which is normally the name and email address of the key holder (See RFC 4880 5.11). - (Serialized.) */ + (Serialized.). For convenience an extra Nul is always appended. */ char name[1]; } PKT_user_id; |