Skip to content

Commit

Permalink
Allow custom memory allocators
Browse files Browse the repository at this point in the history
Close #7
  • Loading branch information
IvanNardi committed Jun 29, 2024
1 parent 533d9aa commit 94cb987
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions pl7m.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,13 @@ size_t LLVMFuzzerMutate(uint8_t *Data, size_t Size, size_t MaxSize);
#endif


/* If you want custom memory allocators, you can simply change these defines */
#define pl7m_malloc(size) malloc(size)
#define pl7m_calloc(num, size) calloc(num, size)
#define pl7m_free(p) free(p)



struct gre_header {
#if defined(__LITTLE_ENDIAN_BITFIELD)
u_int16_t rec:3,
Expand Down Expand Up @@ -931,12 +938,12 @@ static struct m_pkt *__dup_pkt(struct m_pkt *p)
{
struct m_pkt *n;

n = (struct m_pkt *)malloc(sizeof(struct m_pkt));
n = (struct m_pkt *)pl7m_malloc(sizeof(struct m_pkt));
if (!n)
return NULL;
n->raw_data = (unsigned char *)malloc(MAX_PKT_LENGTH);
n->raw_data = (unsigned char *)pl7m_malloc(MAX_PKT_LENGTH);
if(!n->raw_data) {
free(n);
pl7m_free(n);
return NULL;
}
memcpy(n->raw_data, p->raw_data, p->header.caplen);
Expand All @@ -960,8 +967,8 @@ static struct m_pkt *__dup_pkt(struct m_pkt *p)
}
static void __free_pkt(struct m_pkt *p)
{
free(p->raw_data);
free(p);
pl7m_free(p->raw_data);
pl7m_free(p);
}
static void __add_pkt(struct pl7m_handle *h, struct m_pkt *p,
struct m_pkt *prev, struct m_pkt *next)
Expand Down Expand Up @@ -1023,7 +1030,7 @@ static void __free_m_pkts(struct pl7m_handle *h)
__free_pkt(p);
p = n;
}
free(h);
pl7m_free(h);
}

static struct m_pkt *do_pkt_actions(struct pl7m_handle *h, struct m_pkt *p, struct m_pkt **prev)
Expand Down Expand Up @@ -1167,7 +1174,7 @@ static struct pl7m_handle *__deserialize_from_fd(FILE *fd_in)
return NULL;
}

h = (struct pl7m_handle *)calloc(1, sizeof(struct pl7m_handle));
h = (struct pl7m_handle *)pl7m_calloc(1, sizeof(struct pl7m_handle));
if (!h) {
pcap_close(pcap_h);
return NULL;
Expand All @@ -1183,15 +1190,15 @@ static struct pl7m_handle *__deserialize_from_fd(FILE *fd_in)
/* Ignore current pkt, but keep going */
continue;
}
p = (struct m_pkt *)calloc(sizeof(struct m_pkt), 1);
p = (struct m_pkt *)pl7m_calloc(sizeof(struct m_pkt), 1);
if (!p) {
__free_m_pkts(h);
pcap_close(pcap_h);
return NULL;
}
p->raw_data = (unsigned char *)malloc(MAX_PKT_LENGTH);
p->raw_data = (unsigned char *)pl7m_malloc(MAX_PKT_LENGTH);
if (!p->raw_data) {
free(p);
pl7m_free(p);
__free_m_pkts(h);
pcap_close(pcap_h);
return NULL;
Expand All @@ -1205,8 +1212,8 @@ static struct pl7m_handle *__deserialize_from_fd(FILE *fd_in)
if (rc != 0) {
derr("Error dissect_do\n");
/* Ignore current pkt, but keep going */
free(p->raw_data);
free(p);
pl7m_free(p->raw_data);
pl7m_free(p);
continue;
}

Expand Down

0 comments on commit 94cb987

Please sign in to comment.