#include "src/json_rpc.c"
#include <cJSON.h>
-#ifdef __LP64__
#include <stdlib.h>
-#else
-#include <malloc.h> // Index into CTransaction.vjoinsplit
-#endif
struct CCType *CCTypeRegistry[] = {
CC *cc_readFulfillmentBinary(const unsigned char *ffill_bin, size_t ffill_bin_len) {
CC *cond = 0;
- unsigned char *buf = malloc(ffill_bin_len);
+ unsigned char *buf = calloc(1,ffill_bin_len);
Fulfillment_t *ffill = 0;
asn_dec_rval_t rval = ber_decode(0, &asn_DEF_Fulfillment, (void **)&ffill, ffill_bin, ffill_bin_len);
if (rval.code != RC_OK) {
if (cond->type->typeId != CC_Ed25519Type.typeId) return 1;
CCEd25519SigningData *signing = (CCEd25519SigningData*) visitor.context;
if (0 != memcmp(cond->publicKey, signing->pk, 32)) return 1;
- if (!cond->signature) cond->signature = malloc(64);
+ if (!cond->signature) cond->signature = calloc(1,64);
ed25519_sign(cond->signature, visitor.msg, visitor.msgLength,
signing->pk, signing->skpk);
signing->nSigned++;
static CC *ed25519FromFulfillment(const Fulfillment_t *ffill) {
CC *cond = cc_new(CC_Ed25519);
- cond->publicKey = malloc(32);
+ cond->publicKey = calloc(1,32);
memcpy(cond->publicKey, ffill->choice.ed25519Sha256.publicKey.buf, 32);
- cond->signature = malloc(64);
+ cond->signature = calloc(1,64);
memcpy(cond->signature, ffill->choice.ed25519Sha256.signature.buf, 64);
return cond;
}
OCTET_STRING_t octets = eval->code;
cond->codeLength = octets.size;
- cond->code = malloc(octets.size);
+ cond->code = calloc(1,octets.size);
memcpy(cond->code, octets.buf, octets.size);
return cond;
#include "internal.h"
#include <cJSON.h>
-#ifdef __LP64__
#include <stdlib.h>
-#else
-#include <malloc.h> // Index into CTransaction.vjoinsplit
-#endif
+
static cJSON *jsonCondition(CC *cond) {
cJSON *root = cJSON_CreateObject();
static int prefixVisitChildren(CC *cond, CCVisitor visitor) {
size_t prefixedLength = cond->prefixLength + visitor.msgLength;
- unsigned char *prefixed = malloc(prefixedLength);
+ unsigned char *prefixed = calloc(1,prefixedLength);
memcpy(prefixed, cond->prefix, cond->prefixLength);
memcpy(prefixed + cond->prefixLength, visitor.msg, visitor.msgLength);
visitor.msg = prefixed;
void build_decoding_table() {
- decoding_table = malloc(256);
+ decoding_table = calloc(1,256);
for (int i = 0; i < 64; i++)
decoding_table[(unsigned char) encoding_table[i]] = i;
}
size_t output_length = 4 * ((input_length + 2) / 3);
- unsigned char *encoded_data = malloc(output_length + 1);
+ unsigned char *encoded_data = calloc(1,output_length + 1);
if (encoded_data == NULL) return NULL;
for (int i = 0, j = 0; i < input_length;) {
size_t input_length = strlen(data_);
int rem = input_length % 4;
- unsigned char *data = malloc(input_length + (4-rem));
+ unsigned char *data = calloc(1,input_length + (4-rem));
strcpy(data, data_);
// for unpadded b64
if (data[input_length - 1] == '=') (*output_length)--;
if (data[input_length - 2] == '=') (*output_length)--;
- unsigned char *decoded_data = malloc(*output_length);
+ unsigned char *decoded_data = calloc(1,*output_length);
if (decoded_data == NULL) return NULL;
for (int i = 0, j = 0; i < input_length;) {
fprintf(stderr, "Encoding fingerprint failed\n");
return 0;
}
- unsigned char *hash = malloc(32);
+ unsigned char *hash = calloc(1,32);
sha256(buf, rc.encoded, hash);
return hash;
}
char* cc_hex_encode(const uint8_t *bin, size_t len)
{
- char* hex = malloc(len*2+1);
+ char* hex = calloc(1,len*2+1);
if (bin == NULL) return hex;
char map[16] = "0123456789ABCDEF";
for (int i=0; i<len; i++) {