} else if (packetlen == 255) {
packetlen = data[offset++];
packetlen <<= 8;
- packetlen = data[offset++];
+ packetlen |= data[offset++];
packetlen <<= 8;
- packetlen = data[offset++];
+ packetlen |= data[offset++];
packetlen <<= 8;
- packetlen = data[offset++];
+ packetlen |= data[offset++];
}
switch (data[offset] & 0x7F) {
case OPENPGP_SIGSUB_CREATION:
struct openpgp_signedpacket_list *cursubkey = NULL;
uint64_t *subkeys = NULL;
int count = 0;
-
+
if (key != NULL && key->subkeys != NULL) {
subkeys = malloc((spsize(key->subkeys) + 1) *
sizeof (uint64_t));
cursubkey = key->subkeys;
while (cursubkey != NULL) {
- subkeys[count++] = get_packetid(cursubkey->packet);
+ get_packetid(cursubkey->packet, &subkeys[count++]);
cursubkey = cursubkey -> next;
}
subkeys[count] = 0;