diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-09-23 19:06:00 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-09-23 19:06:00 +0200 |
commit | 4366201402fcdecde2331e4d87c05141207e1027 (patch) | |
tree | b920d27252c2e9deb7948b896a319e48b6545290 /lib/opencdk | |
parent | a3887dabf27995374a52bc4fd0bd4da10d9081ad (diff) | |
download | gnutls-4366201402fcdecde2331e4d87c05141207e1027.tar.gz |
Corrected bug in PGP subpacket encoding
Diffstat (limited to 'lib/opencdk')
-rw-r--r-- | lib/opencdk/new-packet.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/opencdk/new-packet.c b/lib/opencdk/new-packet.c index 9453476be6..7a7179aff1 100644 --- a/lib/opencdk/new-packet.c +++ b/lib/opencdk/new-packet.c @@ -711,8 +711,9 @@ _cdk_subpkt_get_array (cdk_subpkt_t s, int count, size_t * r_nbytes) buf[n++] = nbytes; else if (nbytes < 8384) { + nbytes -= 192; buf[n++] = nbytes / 256 + 192; - buf[n++] = nbytes % 256; + buf[n++] = nbytes & 0xff; } else { @@ -722,6 +723,7 @@ _cdk_subpkt_get_array (cdk_subpkt_t s, int count, size_t * r_nbytes) buf[n++] = nbytes >> 8; buf[n++] = nbytes; } + buf[n++] = list->type; memcpy (buf + n, list->d, list->size); n += list->size; |