Commit ca7f8e2b authored by Michael Paquier's avatar Michael Paquier

Remove custom memory allocation layer in pgcrypto

PX_OWN_ALLOC was intended as a way to disable the use of palloc(), and
over the time new palloc() or equivalent calls have been added like in
32984d8f, making this extra layer losing its original purpose.  This
simplifies on the way some code paths to use palloc0() rather than
palloc() followed by memset(0).

Author: Daniel Gustafsson
Discussion: https://postgr.es/m/A5BFAA1A-B2E8-4CBC-895E-7B1B9475A527@yesql.se
parent a45bc8a4
......@@ -478,7 +478,7 @@ mp_int_init(mp_int z)
mp_int
mp_int_alloc(void)
{
mp_int out = px_alloc(sizeof(mpz_t));
mp_int out = palloc(sizeof(mpz_t));
if (out != NULL)
mp_int_init(out);
......@@ -604,7 +604,7 @@ mp_int_free(mp_int z)
assert(z != NULL);
mp_int_clear(z);
px_free(z); /* note: NOT s_free() */
pfree(z); /* note: NOT s_free() */
}
mp_result
......@@ -2212,7 +2212,7 @@ static const mp_digit fill = (mp_digit) 0xdeadbeefabad1dea;
static mp_digit *
s_alloc(mp_size num)
{
mp_digit *out = px_alloc(num * sizeof(mp_digit));
mp_digit *out = palloc(num * sizeof(mp_digit));
assert(out != NULL);
......@@ -2235,7 +2235,7 @@ s_realloc(mp_digit *old, mp_size osize, mp_size nsize)
new[ix] = fill;
memcpy(new, old, osize * sizeof(mp_digit));
#else
mp_digit *new = px_realloc(old, nsize * sizeof(mp_digit));
mp_digit *new = repalloc(old, nsize * sizeof(mp_digit));
assert(new != NULL);
#endif
......@@ -2246,7 +2246,7 @@ s_realloc(mp_digit *old, mp_size osize, mp_size nsize)
static void
s_free(void *ptr)
{
px_free(ptr);
pfree(ptr);
}
static bool
......
......@@ -85,8 +85,8 @@ int_sha224_free(PX_MD *h)
pg_sha224_ctx *ctx = (pg_sha224_ctx *) h->p.ptr;
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
px_free(h);
pfree(ctx);
pfree(h);
}
/* SHA256 */
......@@ -133,8 +133,8 @@ int_sha256_free(PX_MD *h)
pg_sha256_ctx *ctx = (pg_sha256_ctx *) h->p.ptr;
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
px_free(h);
pfree(ctx);
pfree(h);
}
/* SHA384 */
......@@ -181,8 +181,8 @@ int_sha384_free(PX_MD *h)
pg_sha384_ctx *ctx = (pg_sha384_ctx *) h->p.ptr;
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
px_free(h);
pfree(ctx);
pfree(h);
}
/* SHA512 */
......@@ -229,8 +229,8 @@ int_sha512_free(PX_MD *h)
pg_sha512_ctx *ctx = (pg_sha512_ctx *) h->p.ptr;
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
px_free(h);
pfree(ctx);
pfree(h);
}
/* init functions */
......@@ -240,8 +240,7 @@ init_sha224(PX_MD *md)
{
pg_sha224_ctx *ctx;
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
md->p.ptr = ctx;
......@@ -260,8 +259,7 @@ init_sha256(PX_MD *md)
{
pg_sha256_ctx *ctx;
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
md->p.ptr = ctx;
......@@ -280,8 +278,7 @@ init_sha384(PX_MD *md)
{
pg_sha384_ctx *ctx;
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
md->p.ptr = ctx;
......@@ -300,8 +297,7 @@ init_sha512(PX_MD *md)
{
pg_sha512_ctx *ctx;
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
md->p.ptr = ctx;
......
......@@ -123,8 +123,8 @@ int_md5_free(PX_MD *h)
MD5_CTX *ctx = (MD5_CTX *) h->p.ptr;
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
px_free(h);
pfree(ctx);
pfree(h);
}
/* SHA1 */
......@@ -171,8 +171,8 @@ int_sha1_free(PX_MD *h)
SHA1_CTX *ctx = (SHA1_CTX *) h->p.ptr;
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
px_free(h);
pfree(ctx);
pfree(h);
}
/* init functions */
......@@ -182,8 +182,7 @@ init_md5(PX_MD *md)
{
MD5_CTX *ctx;
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
md->p.ptr = ctx;
......@@ -202,8 +201,7 @@ init_sha1(PX_MD *md)
{
SHA1_CTX *ctx;
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
md->p.ptr = ctx;
......@@ -246,9 +244,9 @@ intctx_free(PX_Cipher *c)
if (cx)
{
px_memset(cx, 0, sizeof *cx);
px_free(cx);
pfree(cx);
}
px_free(c);
pfree(c);
}
/*
......@@ -373,8 +371,7 @@ rj_load(int mode)
PX_Cipher *c;
struct int_ctx *cx;
c = px_alloc(sizeof *c);
memset(c, 0, sizeof *c);
c = palloc0(sizeof *c);
c->block_size = rj_block_size;
c->key_size = rj_key_size;
......@@ -384,8 +381,7 @@ rj_load(int mode)
c->decrypt = rj_decrypt;
c->free = intctx_free;
cx = px_alloc(sizeof *cx);
memset(cx, 0, sizeof *cx);
cx = palloc0(sizeof *cx);
cx->mode = mode;
c->ptr = cx;
......@@ -482,8 +478,7 @@ bf_load(int mode)
PX_Cipher *c;
struct int_ctx *cx;
c = px_alloc(sizeof *c);
memset(c, 0, sizeof *c);
c = palloc0(sizeof *c);
c->block_size = bf_block_size;
c->key_size = bf_key_size;
......@@ -493,8 +488,7 @@ bf_load(int mode)
c->decrypt = bf_decrypt;
c->free = intctx_free;
cx = px_alloc(sizeof *cx);
memset(cx, 0, sizeof *cx);
cx = palloc0(sizeof *cx);
cx->mode = mode;
c->ptr = cx;
return c;
......@@ -564,7 +558,7 @@ px_find_digest(const char *name, PX_MD **res)
for (p = int_digest_list; p->name; p++)
if (pg_strcasecmp(p->name, name) == 0)
{
h = px_alloc(sizeof(*h));
h = palloc(sizeof(*h));
p->init(h);
*res = h;
......
......@@ -70,9 +70,9 @@ mbuf_free(MBuf *mbuf)
if (mbuf->own_data)
{
px_memset(mbuf->data, 0, mbuf->buf_end - mbuf->data);
px_free(mbuf->data);
pfree(mbuf->data);
}
px_free(mbuf);
pfree(mbuf);
return 0;
}
......@@ -88,7 +88,7 @@ prepare_room(MBuf *mbuf, int block_len)
newlen = (mbuf->buf_end - mbuf->data)
+ ((block_len + STEP + STEP - 1) & -STEP);
newbuf = px_realloc(mbuf->data, newlen);
newbuf = repalloc(mbuf->data, newlen);
mbuf->buf_end = newbuf + newlen;
mbuf->data_end = newbuf + (mbuf->data_end - mbuf->data);
......@@ -121,8 +121,8 @@ mbuf_create(int len)
if (!len)
len = 8192;
mbuf = px_alloc(sizeof *mbuf);
mbuf->data = px_alloc(len);
mbuf = palloc(sizeof *mbuf);
mbuf->data = palloc(len);
mbuf->buf_end = mbuf->data + len;
mbuf->data_end = mbuf->data;
mbuf->read_pos = mbuf->data;
......@@ -138,7 +138,7 @@ mbuf_create_from_data(uint8 *data, int len)
{
MBuf *mbuf;
mbuf = px_alloc(sizeof *mbuf);
mbuf = palloc(sizeof *mbuf);
mbuf->data = (uint8 *) data;
mbuf->buf_end = mbuf->data + len;
mbuf->data_end = mbuf->data + len;
......@@ -219,15 +219,14 @@ pullf_create(PullFilter **pf_p, const PullFilterOps *op, void *init_arg, PullFil
res = 0;
}
pf = px_alloc(sizeof(*pf));
memset(pf, 0, sizeof(*pf));
pf = palloc0(sizeof(*pf));
pf->buflen = res;
pf->op = op;
pf->priv = priv;
pf->src = src;
if (pf->buflen > 0)
{
pf->buf = px_alloc(pf->buflen);
pf->buf = palloc(pf->buflen);
pf->pos = 0;
}
else
......@@ -248,11 +247,11 @@ pullf_free(PullFilter *pf)
if (pf->buf)
{
px_memset(pf->buf, 0, pf->buflen);
px_free(pf->buf);
pfree(pf->buf);
}
px_memset(pf, 0, sizeof(*pf));
px_free(pf);
pfree(pf);
}
/* may return less data than asked, 0 means eof */
......@@ -386,15 +385,14 @@ pushf_create(PushFilter **mp_p, const PushFilterOps *op, void *init_arg, PushFil
res = 0;
}
mp = px_alloc(sizeof(*mp));
memset(mp, 0, sizeof(*mp));
mp = palloc0(sizeof(*mp));
mp->block_size = res;
mp->op = op;
mp->priv = priv;
mp->next = next;
if (mp->block_size > 0)
{
mp->buf = px_alloc(mp->block_size);
mp->buf = palloc(mp->block_size);
mp->pos = 0;
}
else
......@@ -415,11 +413,11 @@ pushf_free(PushFilter *mp)
if (mp->buf)
{
px_memset(mp->buf, 0, mp->block_size);
px_free(mp->buf);
pfree(mp->buf);
}
px_memset(mp, 0, sizeof(*mp));
px_free(mp);
pfree(mp);
}
void
......
......@@ -156,7 +156,7 @@ digest_free(PX_MD *h)
OSSLDigest *digest = (OSSLDigest *) h->p.ptr;
free_openssl_digest(digest);
px_free(h);
pfree(h);
}
static int px_openssl_initialized = 0;
......@@ -214,7 +214,7 @@ px_find_digest(const char *name, PX_MD **res)
open_digests = digest;
/* The PX_MD object is allocated in the current memory context. */
h = px_alloc(sizeof(*h));
h = palloc(sizeof(*h));
h->result_size = digest_result_size;
h->block_size = digest_block_size;
h->reset = digest_reset;
......@@ -353,7 +353,7 @@ gen_ossl_free(PX_Cipher *c)
OSSLCipher *od = (OSSLCipher *) c->ptr;
free_openssl_cipher(od);
px_free(c);
pfree(c);
}
static int
......@@ -790,7 +790,7 @@ px_find_cipher(const char *name, PX_Cipher **res)
od->evp_ciph = i->ciph->cipher_func();
/* The PX_Cipher is allocated in current memory context */
c = px_alloc(sizeof(*c));
c = palloc(sizeof(*c));
c->block_size = gen_ossl_block_size;
c->key_size = gen_ossl_key_size;
c->iv_size = gen_ossl_iv_size;
......
......@@ -67,8 +67,7 @@ pgp_cfb_create(PGP_CFB **ctx_p, int algo, const uint8 *key, int key_len,
return res;
}
ctx = px_alloc(sizeof(*ctx));
memset(ctx, 0, sizeof(*ctx));
ctx = palloc0(sizeof(*ctx));
ctx->ciph = ciph;
ctx->block_size = px_cipher_block_size(ciph);
ctx->resync = resync;
......@@ -85,7 +84,7 @@ pgp_cfb_free(PGP_CFB *ctx)
{
px_cipher_free(ctx->ciph);
px_memset(ctx, 0, sizeof(*ctx));
px_free(ctx);
pfree(ctx);
}
/*
......
......@@ -57,13 +57,13 @@ struct ZipStat
static void *
z_alloc(void *priv, unsigned n_items, unsigned item_len)
{
return px_alloc(n_items * item_len);
return palloc(n_items * item_len);
}
static void
z_free(void *priv, void *addr)
{
px_free(addr);
pfree(addr);
}
static int
......@@ -80,8 +80,7 @@ compress_init(PushFilter *next, void *init_arg, void **priv_p)
/*
* init
*/
st = px_alloc(sizeof(*st));
memset(st, 0, sizeof(*st));
st = palloc0(sizeof(*st));
st->buf_len = ZIP_OUT_BUF;
st->stream.zalloc = z_alloc;
st->stream.zfree = z_free;
......@@ -93,7 +92,7 @@ compress_init(PushFilter *next, void *init_arg, void **priv_p)
res = deflateInit(&st->stream, ctx->compress_level);
if (res != Z_OK)
{
px_free(st);
pfree(st);
return PXE_PGP_COMPRESSION_ERROR;
}
*priv_p = st;
......@@ -174,7 +173,7 @@ compress_free(void *priv)
deflateEnd(&st->stream);
px_memset(st, 0, sizeof(*st));
px_free(st);
pfree(st);
}
static const PushFilterOps
......@@ -212,8 +211,7 @@ decompress_init(void **priv_p, void *arg, PullFilter *src)
&& ctx->compress_algo != PGP_COMPR_ZIP)
return PXE_PGP_UNSUPPORTED_COMPR;
dec = px_alloc(sizeof(*dec));
memset(dec, 0, sizeof(*dec));
dec = palloc0(sizeof(*dec));
dec->buf_len = ZIP_OUT_BUF;
*priv_p = dec;
......@@ -226,7 +224,7 @@ decompress_init(void **priv_p, void *arg, PullFilter *src)
res = inflateInit(&dec->stream);
if (res != Z_OK)
{
px_free(dec);
pfree(dec);
px_debug("decompress_init: inflateInit error");
return PXE_PGP_COMPRESSION_ERROR;
}
......@@ -318,7 +316,7 @@ decompress_free(void *priv)
inflateEnd(&dec->stream);
px_memset(dec, 0, sizeof(*dec));
px_free(dec);
pfree(dec);
}
static const PullFilterOps
......
......@@ -211,7 +211,7 @@ pktreader_free(void *priv)
struct PktData *pkt = priv;
px_memset(pkt, 0, sizeof(*pkt));
px_free(pkt);
pfree(pkt);
}
static struct PullFilterOps pktreader_filter = {
......@@ -224,13 +224,13 @@ pgp_create_pkt_reader(PullFilter **pf_p, PullFilter *src, int len,
int pkttype, PGP_Context *ctx)
{
int res;
struct PktData *pkt = px_alloc(sizeof(*pkt));
struct PktData *pkt = palloc(sizeof(*pkt));
pkt->type = pkttype;
pkt->len = len;
res = pullf_create(pf_p, &pktreader_filter, pkt, src);
if (res < 0)
px_free(pkt);
pfree(pkt);
return res;
}
......@@ -447,8 +447,7 @@ mdcbuf_init(void **priv_p, void *arg, PullFilter *src)
PGP_Context *ctx = arg;
struct MDCBufData *st;
st = px_alloc(sizeof(*st));
memset(st, 0, sizeof(*st));
st = palloc0(sizeof(*st));
st->buflen = sizeof(st->buf);
st->ctx = ctx;
*priv_p = st;
......@@ -576,7 +575,7 @@ mdcbuf_free(void *priv)
px_md_free(st->ctx->mdc_ctx);
st->ctx->mdc_ctx = NULL;
px_memset(st, 0, sizeof(*st));
px_free(st);
pfree(st);
}
static struct PullFilterOps mdcbuf_filter = {
......
......@@ -178,8 +178,7 @@ encrypt_init(PushFilter *next, void *init_arg, void **priv_p)
if (res < 0)
return res;
st = px_alloc(sizeof(*st));
memset(st, 0, sizeof(*st));
st = palloc0(sizeof(*st));
st->ciph = ciph;
*priv_p = st;
......@@ -219,7 +218,7 @@ encrypt_free(void *priv)
if (st->ciph)
pgp_cfb_free(st->ciph);
px_memset(st, 0, sizeof(*st));
px_free(st);
pfree(st);
}
static const PushFilterOps encrypt_filter = {
......@@ -241,7 +240,7 @@ pkt_stream_init(PushFilter *next, void *init_arg, void **priv_p)
{
struct PktStreamStat *st;
st = px_alloc(sizeof(*st));
st = palloc(sizeof(*st));
st->final_done = 0;
st->pkt_block = 1 << STREAM_BLOCK_SHIFT;
*priv_p = st;
......@@ -301,7 +300,7 @@ pkt_stream_free(void *priv)
struct PktStreamStat *st = priv;
px_memset(st, 0, sizeof(*st));
px_free(st);
pfree(st);
}
static const PushFilterOps pkt_stream_filter = {
......
......@@ -60,10 +60,10 @@ mp_px_rand(uint32 bits, mpz_t *res)
int last_bits = bits & 7;
uint8 *buf;
buf = px_alloc(bytes);
buf = palloc(bytes);
if (!pg_strong_random(buf, bytes))
{
px_free(buf);
pfree(buf);
return PXE_NO_RANDOM;
}
......@@ -78,7 +78,7 @@ mp_px_rand(uint32 bits, mpz_t *res)
mp_int_read_unsigned(res, buf, bytes);
px_free(buf);
pfree(buf);
return 0;
}
......
......@@ -44,7 +44,7 @@ pgp_mpi_alloc(int bits, PGP_MPI **mpi)
px_debug("pgp_mpi_alloc: unreasonable request: bits=%d", bits);
return PXE_PGP_CORRUPT_DATA;
}
n = px_alloc(sizeof(*n) + len);
n = palloc(sizeof(*n) + len);
n->bits = bits;
n->bytes = len;
n->data = (uint8 *) (n) + sizeof(*n);
......@@ -72,7 +72,7 @@ pgp_mpi_free(PGP_MPI *mpi)
if (mpi == NULL)
return 0;
px_memset(mpi, 0, sizeof(*mpi) + mpi->bytes);
px_free(mpi);
pfree(mpi);
return 0;
}
......
......@@ -46,12 +46,12 @@ pad_eme_pkcs1_v15(uint8 *data, int data_len, int res_len, uint8 **res_p)
if (pad_len < 8)
return PXE_BUG;
buf = px_alloc(res_len);
buf = palloc(res_len);
buf[0] = 0x02;
if (!pg_strong_random(buf + 1, pad_len))
{
px_free(buf);
pfree(buf);
return PXE_NO_RANDOM;
}
......@@ -64,7 +64,7 @@ pad_eme_pkcs1_v15(uint8 *data, int data_len, int res_len, uint8 **res_p)
if (!pg_strong_random(p, 1))
{
px_memset(buf, 0, res_len);
px_free(buf);
pfree(buf);
return PXE_NO_RANDOM;
}
}
......@@ -97,7 +97,7 @@ create_secmsg(PGP_Context *ctx, PGP_MPI **msg_p, int full_bytes)
/*
* create "secret message"
*/
secmsg = px_alloc(klen + 3);
secmsg = palloc(klen + 3);
secmsg[0] = ctx->cipher_algo;
memcpy(secmsg + 1, ctx->sess_key, klen);
secmsg[klen + 1] = (cksum >> 8) & 0xFF;
......@@ -118,10 +118,10 @@ create_secmsg(PGP_Context *ctx, PGP_MPI **msg_p, int full_bytes)
if (padded)
{
px_memset(padded, 0, full_bytes);
px_free(padded);
pfree(padded);
}
px_memset(secmsg, 0, klen + 3);
px_free(secmsg);
pfree(secmsg);
if (res >= 0)
*msg_p = m;
......
......@@ -39,8 +39,7 @@ pgp_key_alloc(PGP_PubKey **pk_p)
{
PGP_PubKey *pk;
pk = px_alloc(sizeof(*pk));
memset(pk, 0, sizeof(*pk));
pk = palloc0(sizeof(*pk));
*pk_p = pk;
return 0;
}
......@@ -78,7 +77,7 @@ pgp_key_free(PGP_PubKey *pk)
break;
}
px_memset(pk, 0, sizeof(*pk));
px_free(pk);
pfree(pk);
}
static int
......
......@@ -200,8 +200,7 @@ pgp_init(PGP_Context **ctx_p)
{
PGP_Context *ctx;
ctx = px_alloc(sizeof *ctx);
memset(ctx, 0, sizeof *ctx);
ctx = palloc0(sizeof *ctx);
ctx->cipher_algo = def_cipher_algo;
ctx->s2k_cipher_algo = def_s2k_cipher_algo;
......@@ -226,7 +225,7 @@ pgp_free(PGP_Context *ctx)
if (ctx->pub_key)
pgp_key_free(ctx->pub_key);
px_memset(ctx, 0, sizeof *ctx);
px_free(ctx);
pfree(ctx);
return 0;
}
......
......@@ -57,8 +57,7 @@ hmac_init(PX_HMAC *h, const uint8 *key, unsigned klen)
PX_MD *md = h->md;
bs = px_md_block_size(md);
keybuf = px_alloc(bs);
memset(keybuf, 0, bs);
keybuf = palloc0(bs);
if (klen > bs)
{
......@@ -76,7 +75,7 @@ hmac_init(PX_HMAC *h, const uint8 *key, unsigned klen)
}
px_memset(keybuf, 0, bs);
px_free(keybuf);
pfree(keybuf);
px_md_update(md, h->p.ipad, bs);
}
......@@ -108,7 +107,7 @@ hmac_finish(PX_HMAC *h, uint8 *dst)
bs = px_md_block_size(md);
hlen = px_md_result_size(md);
buf = px_alloc(hlen);
buf = palloc(hlen);
px_md_finish(md, buf);
......@@ -118,7 +117,7 @@ hmac_finish(PX_HMAC *h, uint8 *dst)
px_md_finish(md, dst);
px_memset(buf, 0, hlen);
px_free(buf);
pfree(buf);
}
static void
......@@ -131,9 +130,9 @@ hmac_free(PX_HMAC *h)
px_memset(h->p.ipad, 0, bs);
px_memset(h->p.opad, 0, bs);
px_free(h->p.ipad);
px_free(h->p.opad);
px_free(h);
pfree(h->p.ipad);
pfree(h->p.opad);
pfree(h);
}
......@@ -158,9 +157,9 @@ px_find_hmac(const char *name, PX_HMAC **res)
return PXE_HASH_UNUSABLE_FOR_HMAC;
}
h = px_alloc(sizeof(*h));
h->p.ipad = px_alloc(bs);
h->p.opad = px_alloc(bs);
h = palloc(sizeof(*h));
h->p.ipad = palloc(bs);
h->p.opad = palloc(bs);
h->md = md;
h->result_size = hmac_result_size;
......
......@@ -196,8 +196,7 @@ combo_init(PX_Combo *cx, const uint8 *key, unsigned klen,
ivs = px_cipher_iv_size(c);
if (ivs > 0)
{
ivbuf = px_alloc(ivs);
memset(ivbuf, 0, ivs);
ivbuf = palloc0(ivs);
if (ivlen > ivs)
memcpy(ivbuf, iv, ivs);
else
......@@ -206,15 +205,15 @@ combo_init(PX_Combo *cx, const uint8 *key, unsigned klen,
if (klen > ks)
klen = ks;
keybuf = px_alloc(ks);
keybuf = palloc0(ks);
memset(keybuf, 0, ks);
memcpy(keybuf, key, klen);
err = px_cipher_init(c, keybuf, klen, ivbuf);
if (ivbuf)
px_free(ivbuf);
px_free(keybuf);
pfree(ivbuf);
pfree(keybuf);
return err;
}
......@@ -238,7 +237,7 @@ combo_encrypt(PX_Combo *cx, const uint8 *data, unsigned dlen,
/* encrypt */
if (bs > 1)
{
bbuf = px_alloc(bs * 4);
bbuf = palloc(bs * 4);
bpos = dlen % bs;
*rlen = dlen - bpos;
memcpy(bbuf, data + *rlen, bpos);
......@@ -283,7 +282,7 @@ combo_encrypt(PX_Combo *cx, const uint8 *data, unsigned dlen,
}
out:
if (bbuf)
px_free(bbuf);
pfree(bbuf);
return err;
}
......@@ -351,7 +350,7 @@ combo_free(PX_Combo *cx)
if (cx->cipher)
px_cipher_free(cx->cipher);
px_memset(cx, 0, sizeof(*cx));
px_free(cx);
pfree(cx);
}
/* PARSER */
......@@ -408,17 +407,14 @@ px_find_combo(const char *name, PX_Combo **res)
PX_Combo *cx;
cx = px_alloc(sizeof(*cx));
memset(cx, 0, sizeof(*cx));
buf = px_alloc(strlen(name) + 1);
strcpy(buf, name);
cx = palloc0(sizeof(*cx));
buf = pstrdup(name);
err = parse_cipher_name(buf, &s_cipher, &s_pad);
if (err)
{
px_free(buf);
px_free(cx);
pfree(buf);
pfree(cx);
return err;
}
......@@ -445,7 +441,7 @@ px_find_combo(const char *name, PX_Combo **res)
cx->decrypt_len = combo_decrypt_len;
cx->free = combo_free;
px_free(buf);
pfree(buf);
*res = cx;
......@@ -454,7 +450,7 @@ px_find_combo(const char *name, PX_Combo **res)
err1:
if (cx->cipher)
px_cipher_free(cx->cipher);
px_free(cx);
px_free(buf);
pfree(cx);
pfree(buf);
return PXE_NO_CIPHER;
}
......@@ -37,19 +37,6 @@
/* keep debug messages? */
#define PX_DEBUG
/* a way to disable palloc
* - useful if compiled into standalone
*/
#ifndef PX_OWN_ALLOC
#define px_alloc(s) palloc(s)
#define px_realloc(p, s) repalloc(p, s)
#define px_free(p) pfree(p)
#else
void *px_alloc(size_t s);
void *px_realloc(void *p, size_t s);
void px_free(void *p);
#endif
/* max salt returned */
#define PX_MAX_SALT_LEN 128
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment