aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keygen.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/keygen.c')
-rw-r--r--g10/keygen.c14
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;