diff options
Diffstat (limited to 'g10/keygen.c')
-rw-r--r-- | g10/keygen.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index 995ba6389..76ee74e63 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -40,6 +40,7 @@ #include "i18n.h" #include "cardglue.h" #include "keyserver-internal.h" +#include "host2net.h" #define MAX_PREFS 30 @@ -832,10 +833,7 @@ make_backsig (PKT_signature *sig, PKT_public_key *pk, } else if(buf[1]==255) { - pktlen =buf[2] << 24; - pktlen|=buf[3] << 16; - pktlen|=buf[4] << 8; - pktlen|=buf[5]; + pktlen = buf32_to_size_t (buf+2); buf+=6; } else @@ -852,14 +850,14 @@ make_backsig (PKT_signature *sig, PKT_public_key *pk, break; case 2: - pktlen =buf[mark++] << 24; - pktlen|=buf[mark++] << 16; + pktlen = (size_t)buf[mark++] << 24; + pktlen |= buf[mark++] << 16; case 1: - pktlen|=buf[mark++] << 8; + pktlen |= buf[mark++] << 8; case 0: - pktlen|=buf[mark++]; + pktlen |= buf[mark++]; } buf+=mark; |