X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/62c94dacbe471278972813b59776a5fadbd8a543..32851537d44f08b08ed317cbc4281ce003f84fa4:/parsekey.c diff --git a/parsekey.c b/parsekey.c index 4ec7ef3..a98e8cc 100644 --- a/parsekey.c +++ b/parsekey.c @@ -4,6 +4,8 @@ * Jonathan McDowell * * Copyright 2002 Project Purple + * + * $Id: parsekey.c,v 1.9 2003/09/28 21:07:49 noodles Exp $ */ #include @@ -15,6 +17,7 @@ #include "keyid.h" #include "keystructs.h" #include "ll.h" +#include "log.h" #include "mem.h" #include "parsekey.h" @@ -126,7 +129,8 @@ int parse_keys(struct openpgp_packet_list *packets, */ break; default: - fprintf(stderr, "Unsupported packet type: %d\n", + logthing(LOGTHING_ERROR, + "Unsupported packet type: %d", packets->packet->tag); } packets = packets->next; @@ -199,7 +203,9 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count, curpacket->packet->newformat = (curchar & 0x40); - // TODO: Better error checking on getchar_func. + /* + * TODO: Better error checking on getchar_func. + */ if (curpacket->packet->newformat) { curpacket->packet->tag = (curchar & 0x3F); rc = getchar_func(ctx, 1, &curchar); @@ -259,7 +265,8 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count, curpacket->packet->length += curchar; break; case 3: - fprintf(stderr, "Unsupported length type 3.\n"); + logthing(LOGTHING_ERROR, + "Unsupported length type 3."); curpacket->packet->length = 0; curpacket->packet->data = NULL; rc = -1; @@ -271,13 +278,20 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count, curpacket->packet->data = malloc(curpacket->packet->length * sizeof(unsigned char)); - rc = getchar_func(ctx, - curpacket->packet->length, - curpacket->packet->data); + if (curpacket->packet->data == NULL) { + logthing(LOGTHING_ERROR, + "Can't allocate memory for " + "packet!"); + rc = -1; + } else { + rc = getchar_func(ctx, + curpacket->packet->length, + curpacket->packet->data); + } } inpacket = false; } else { - fprintf(stderr, "Unexpected character: 0x%X\n", + logthing(LOGTHING_ERROR, "Unexpected character: 0x%X", curchar); } } @@ -321,7 +335,8 @@ int write_openpgp_stream(int (*putchar_func)(void *ctx, size_t count, 0xFF; putchar_func(ctx, 1, &curchar); } else { - fputs("Unsupported new format length.\n", stderr); + logthing(LOGTHING_ERROR, + "Unsupported new format length."); } } else { curchar |= (packets->packet->tag << 2); @@ -350,10 +365,8 @@ int write_openpgp_stream(int (*putchar_func)(void *ctx, size_t count, } } - putchar_func(ctx, packets->packet->length, packets->packet->data); -// for (i = 0; i < packets->packet->length; i++) { -// putchar_func(ctx, packets->packet->data[i]); -// } + putchar_func(ctx, packets->packet->length, + packets->packet->data); packets = packets->next; } return 0;