Commit df5fff5e authored by David Hargat's avatar David Hargat Committed by Cesanta Bot

Consistent MG_MALLOC, MG_REALLOC and MG_FREE calls

PUBLISHED_FROM=e7f306b5d1a1366d3ec71fa238c5e18c03aadf8d
parent d9243d1c
...@@ -10,21 +10,7 @@ ...@@ -10,21 +10,7 @@
#ifndef CS_MONGOOSE_SRC_INTERNAL_H_ #ifndef CS_MONGOOSE_SRC_INTERNAL_H_
#define CS_MONGOOSE_SRC_INTERNAL_H_ #define CS_MONGOOSE_SRC_INTERNAL_H_
#ifndef MG_MALLOC /* Amalgamated: #include "common/mg_mem.h" */
#define MG_MALLOC malloc
#endif
#ifndef MG_CALLOC
#define MG_CALLOC calloc
#endif
#ifndef MG_REALLOC
#define MG_REALLOC realloc
#endif
#ifndef MG_FREE
#define MG_FREE free
#endif
#ifndef MBUF_REALLOC #ifndef MBUF_REALLOC
#define MBUF_REALLOC MG_REALLOC #define MBUF_REALLOC MG_REALLOC
...@@ -179,6 +165,34 @@ MG_INTERNAL int mg_sntp_parse_reply(const char *buf, int len, ...@@ -179,6 +165,34 @@ MG_INTERNAL int mg_sntp_parse_reply(const char *buf, int len,
#endif /* CS_MONGOOSE_SRC_INTERNAL_H_ */ #endif /* CS_MONGOOSE_SRC_INTERNAL_H_ */
#ifdef MG_MODULE_LINES #ifdef MG_MODULE_LINES
#line 1 "common/mg_mem.h"
#endif
/*
* Copyright (c) 2014-2016 Cesanta Software Limited
* All rights reserved
*/
#ifndef CS_COMMON_MG_MEM_H_
#define CS_COMMON_MG_MEM_H_
#ifndef MG_MALLOC
#define MG_MALLOC malloc
#endif
#ifndef MG_CALLOC
#define MG_CALLOC calloc
#endif
#ifndef MG_REALLOC
#define MG_REALLOC realloc
#endif
#ifndef MG_FREE
#define MG_FREE free
#endif
#endif /* CS_COMMON_MG_MEM_H_ */
#ifdef MG_MODULE_LINES
#line 1 "common/cs_dbg.h" #line 1 "common/cs_dbg.h"
#endif #endif
/* /*
...@@ -595,6 +609,7 @@ struct dirent *readdir(DIR *dir); ...@@ -595,6 +609,7 @@ struct dirent *readdir(DIR *dir);
#ifndef EXCLUDE_COMMON #ifndef EXCLUDE_COMMON
/* Amalgamated: #include "common/mg_mem.h" */
/* Amalgamated: #include "common/cs_dirent.h" */ /* Amalgamated: #include "common/cs_dirent.h" */
/* /*
...@@ -602,14 +617,6 @@ struct dirent *readdir(DIR *dir); ...@@ -602,14 +617,6 @@ struct dirent *readdir(DIR *dir);
* for systems which do not natively support it (e.g. Windows). * for systems which do not natively support it (e.g. Windows).
*/ */
#ifndef MG_FREE
#define MG_FREE free
#endif
#ifndef MG_MALLOC
#define MG_MALLOC malloc
#endif
#ifdef _WIN32 #ifdef _WIN32
struct win32_dir { struct win32_dir {
DIR d; DIR d;
...@@ -1116,6 +1123,7 @@ void mbuf_remove(struct mbuf *mb, size_t n) { ...@@ -1116,6 +1123,7 @@ void mbuf_remove(struct mbuf *mb, size_t n) {
* All rights reserved * All rights reserved
*/ */
/* Amalgamated: #include "common/mg_mem.h" */
/* Amalgamated: #include "common/mg_str.h" */ /* Amalgamated: #include "common/mg_str.h" */
#include <stdlib.h> #include <stdlib.h>
...@@ -1160,7 +1168,7 @@ struct mg_str mg_strdup(const struct mg_str s) WEAK; ...@@ -1160,7 +1168,7 @@ struct mg_str mg_strdup(const struct mg_str s) WEAK;
struct mg_str mg_strdup(const struct mg_str s) { struct mg_str mg_strdup(const struct mg_str s) {
struct mg_str r = {NULL, 0}; struct mg_str r = {NULL, 0};
if (s.len > 0 && s.p != NULL) { if (s.len > 0 && s.p != NULL) {
r.p = (char *) malloc(s.len); r.p = (char *) MG_MALLOC(s.len);
if (r.p != NULL) { if (r.p != NULL) {
memcpy((char *) r.p, s.p, s.len); memcpy((char *) r.p, s.p, s.len);
r.len = s.len; r.len = s.len;
...@@ -1468,13 +1476,7 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen, ...@@ -1468,13 +1476,7 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen,
#define C_DISABLE_BUILTIN_SNPRINTF 0 #define C_DISABLE_BUILTIN_SNPRINTF 0
#endif #endif
#ifndef MG_MALLOC /* Amalgamated: #include "common/mg_mem.h" */
#define MG_MALLOC malloc
#endif
#ifndef MG_FREE
#define MG_FREE free
#endif
size_t c_strnlen(const char *s, size_t maxlen) WEAK; size_t c_strnlen(const char *s, size_t maxlen) WEAK;
size_t c_strnlen(const char *s, size_t maxlen) { size_t c_strnlen(const char *s, size_t maxlen) {
...@@ -1740,7 +1742,7 @@ const char *c_strnstr(const char *s, const char *find, size_t slen) { ...@@ -1740,7 +1742,7 @@ const char *c_strnstr(const char *s, const char *find, size_t slen) {
char *strdup(const char *src) WEAK; char *strdup(const char *src) WEAK;
char *strdup(const char *src) { char *strdup(const char *src) {
size_t len = strlen(src) + 1; size_t len = strlen(src) + 1;
char *ret = malloc(len); char *ret = MG_MALLOC(len);
if (ret != NULL) { if (ret != NULL) {
strcpy(ret, src); strcpy(ret, src);
} }
...@@ -5114,9 +5116,9 @@ static struct mg_http_proto_data *mg_http_get_proto_data( ...@@ -5114,9 +5116,9 @@ static struct mg_http_proto_data *mg_http_get_proto_data(
#if MG_ENABLE_HTTP_STREAMING_MULTIPART #if MG_ENABLE_HTTP_STREAMING_MULTIPART
static void mg_http_free_proto_data_mp_stream( static void mg_http_free_proto_data_mp_stream(
struct mg_http_multipart_stream *mp) { struct mg_http_multipart_stream *mp) {
free((void *) mp->boundary); MG_FREE((void *) mp->boundary);
free((void *) mp->var_name); MG_FREE((void *) mp->var_name);
free((void *) mp->file_name); MG_FREE((void *) mp->file_name);
memset(mp, 0, sizeof(*mp)); memset(mp, 0, sizeof(*mp));
} }
#endif #endif
...@@ -5137,8 +5139,8 @@ static void mg_http_free_proto_data_endpoints(struct mg_http_endpoint **ep) { ...@@ -5137,8 +5139,8 @@ static void mg_http_free_proto_data_endpoints(struct mg_http_endpoint **ep) {
while (current != NULL) { while (current != NULL) {
struct mg_http_endpoint *tmp = current->next; struct mg_http_endpoint *tmp = current->next;
free((void *) current->name); MG_FREE((void *) current->name);
free(current); MG_FREE(current);
current = tmp; current = tmp;
} }
...@@ -5174,7 +5176,7 @@ static void mg_http_conn_destructor(void *proto_data) { ...@@ -5174,7 +5176,7 @@ static void mg_http_conn_destructor(void *proto_data) {
#endif #endif
mg_http_free_proto_data_endpoints(&pd->endpoints); mg_http_free_proto_data_endpoints(&pd->endpoints);
mg_http_free_reverse_proxy_data(&pd->reverse_proxy_data); mg_http_free_reverse_proxy_data(&pd->reverse_proxy_data);
free(proto_data); MG_FREE(proto_data);
} }
#if MG_ENABLE_FILESYSTEM #if MG_ENABLE_FILESYSTEM
...@@ -5942,9 +5944,9 @@ static int mg_http_multipart_finalize(struct mg_connection *c) { ...@@ -5942,9 +5944,9 @@ static int mg_http_multipart_finalize(struct mg_connection *c) {
struct mg_http_proto_data *pd = mg_http_get_proto_data(c); struct mg_http_proto_data *pd = mg_http_get_proto_data(c);
mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_END, NULL, 0); mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_END, NULL, 0);
free((void *) pd->mp_stream.file_name); MG_FREE((void *) pd->mp_stream.file_name);
pd->mp_stream.file_name = NULL; pd->mp_stream.file_name = NULL;
free((void *) pd->mp_stream.var_name); MG_FREE((void *) pd->mp_stream.var_name);
pd->mp_stream.var_name = NULL; pd->mp_stream.var_name = NULL;
mg_http_multipart_call_handler(c, MG_EV_HTTP_MULTIPART_REQUEST_END, NULL, 0); mg_http_multipart_call_handler(c, MG_EV_HTTP_MULTIPART_REQUEST_END, NULL, 0);
mg_http_free_proto_data_mp_stream(&pd->mp_stream); mg_http_free_proto_data_mp_stream(&pd->mp_stream);
...@@ -6016,9 +6018,9 @@ static int mg_http_multipart_process_boundary(struct mg_connection *c) { ...@@ -6016,9 +6018,9 @@ static int mg_http_multipart_process_boundary(struct mg_connection *c) {
mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_END, NULL, 0); mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_END, NULL, 0);
} }
free((void *) pd->mp_stream.file_name); MG_FREE((void *) pd->mp_stream.file_name);
pd->mp_stream.file_name = strdup(file_name); pd->mp_stream.file_name = strdup(file_name);
free((void *) pd->mp_stream.var_name); MG_FREE((void *) pd->mp_stream.var_name);
pd->mp_stream.var_name = strdup(var_name); pd->mp_stream.var_name = strdup(var_name);
mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_BEGIN, NULL, 0); mg_http_multipart_call_handler(c, MG_EV_HTTP_PART_BEGIN, NULL, 0);
...@@ -7558,7 +7560,7 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data, ...@@ -7558,7 +7560,7 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data,
struct mg_http_multipart_part *mp = struct mg_http_multipart_part *mp =
(struct mg_http_multipart_part *) ev_data; (struct mg_http_multipart_part *) ev_data;
struct file_upload_state *fus = struct file_upload_state *fus =
(struct file_upload_state *) calloc(1, sizeof(*fus)); (struct file_upload_state *) MG_CALLOC(1, sizeof(*fus));
struct mg_str lfn = local_name_fn(nc, mg_mk_str(mp->file_name)); struct mg_str lfn = local_name_fn(nc, mg_mk_str(mp->file_name));
mp->user_data = NULL; mp->user_data = NULL;
if (lfn.p == NULL || lfn.len == 0) { if (lfn.p == NULL || lfn.len == 0) {
...@@ -7572,10 +7574,10 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data, ...@@ -7572,10 +7574,10 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data,
nc->flags |= MG_F_SEND_AND_CLOSE; nc->flags |= MG_F_SEND_AND_CLOSE;
return; return;
} }
fus->lfn = (char *) malloc(lfn.len + 1); fus->lfn = (char *) MG_MALLOC(lfn.len + 1);
memcpy(fus->lfn, lfn.p, lfn.len); memcpy(fus->lfn, lfn.p, lfn.len);
fus->lfn[lfn.len] = '\0'; fus->lfn[lfn.len] = '\0';
if (lfn.p != mp->file_name) free((char *) lfn.p); if (lfn.p != mp->file_name) MG_FREE((char *) lfn.p);
LOG(LL_DEBUG, LOG(LL_DEBUG,
("%p Receiving file %s -> %s", nc, mp->file_name, fus->lfn)); ("%p Receiving file %s -> %s", nc, mp->file_name, fus->lfn));
fus->fp = mg_fopen(fus->lfn, "w"); fus->fp = mg_fopen(fus->lfn, "w");
...@@ -7657,8 +7659,8 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data, ...@@ -7657,8 +7659,8 @@ void mg_file_upload_handler(struct mg_connection *nc, int ev, void *ev_data,
*/ */
} }
if (fus->fp != NULL) fclose(fus->fp); if (fus->fp != NULL) fclose(fus->fp);
free(fus->lfn); MG_FREE(fus->lfn);
free(fus); MG_FREE(fus);
mp->user_data = NULL; mp->user_data = NULL;
nc->flags |= MG_F_SEND_AND_CLOSE; nc->flags |= MG_F_SEND_AND_CLOSE;
break; break;
...@@ -7889,7 +7891,7 @@ void mg_register_http_endpoint(struct mg_connection *nc, const char *uri_path, ...@@ -7889,7 +7891,7 @@ void mg_register_http_endpoint(struct mg_connection *nc, const char *uri_path,
struct mg_http_endpoint *new_ep = NULL; struct mg_http_endpoint *new_ep = NULL;
if (nc == NULL) return; if (nc == NULL) return;
new_ep = (struct mg_http_endpoint *) calloc(1, sizeof(*new_ep)); new_ep = (struct mg_http_endpoint *) MG_CALLOC(1, sizeof(*new_ep));
if (new_ep == NULL) return; if (new_ep == NULL) return;
pd = mg_http_get_proto_data(nc); pd = mg_http_get_proto_data(nc);
...@@ -10124,7 +10126,8 @@ void mg_mqtt_broker_init(struct mg_mqtt_broker *brk, void *user_data) { ...@@ -10124,7 +10126,8 @@ void mg_mqtt_broker_init(struct mg_mqtt_broker *brk, void *user_data) {
static void mg_mqtt_broker_handle_connect(struct mg_mqtt_broker *brk, static void mg_mqtt_broker_handle_connect(struct mg_mqtt_broker *brk,
struct mg_connection *nc) { struct mg_connection *nc) {
struct mg_mqtt_session *s = (struct mg_mqtt_session *) calloc(1, sizeof *s); struct mg_mqtt_session *s =
(struct mg_mqtt_session *) MG_CALLOC(1, sizeof *s);
if (s == NULL) { if (s == NULL) {
/* LCOV_EXCL_START */ /* LCOV_EXCL_START */
mg_mqtt_connack(nc, MG_EV_MQTT_CONNACK_SERVER_UNAVAILABLE); mg_mqtt_connack(nc, MG_EV_MQTT_CONNACK_SERVER_UNAVAILABLE);
...@@ -10157,13 +10160,13 @@ static void mg_mqtt_broker_handle_subscribe(struct mg_connection *nc, ...@@ -10157,13 +10160,13 @@ static void mg_mqtt_broker_handle_subscribe(struct mg_connection *nc,
qoss[qoss_len++] = qos; qoss[qoss_len++] = qos;
} }
ss->subscriptions = (struct mg_mqtt_topic_expression *) realloc( ss->subscriptions = (struct mg_mqtt_topic_expression *) MG_REALLOC(
ss->subscriptions, sizeof(*ss->subscriptions) * qoss_len); ss->subscriptions, sizeof(*ss->subscriptions) * qoss_len);
for (pos = 0; for (pos = 0;
(pos = mg_mqtt_next_subscribe_topic(msg, &topic, &qos, pos)) != -1; (pos = mg_mqtt_next_subscribe_topic(msg, &topic, &qos, pos)) != -1;
ss->num_subscriptions++) { ss->num_subscriptions++) {
te = &ss->subscriptions[ss->num_subscriptions]; te = &ss->subscriptions[ss->num_subscriptions];
te->topic = (char *) malloc(topic.len + 1); te->topic = (char *) MG_MALLOC(topic.len + 1);
te->qos = qos; te->qos = qos;
strncpy((char *) te->topic, topic.p, topic.len + 1); strncpy((char *) te->topic, topic.p, topic.len + 1);
} }
...@@ -10950,7 +10953,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query, ...@@ -10950,7 +10953,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query,
dns_nc = mg_connect(mgr, nameserver_url, MG_CB(mg_resolve_async_eh, NULL)); dns_nc = mg_connect(mgr, nameserver_url, MG_CB(mg_resolve_async_eh, NULL));
if (dns_nc == NULL) { if (dns_nc == NULL) {
free(req); MG_FREE(req);
return -1; return -1;
} }
dns_nc->user_data = req; dns_nc->user_data = req;
...@@ -10962,7 +10965,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query, ...@@ -10962,7 +10965,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query,
} }
void mg_set_nameserver(struct mg_mgr *mgr, const char *nameserver) { void mg_set_nameserver(struct mg_mgr *mgr, const char *nameserver) {
free((char *) mgr->nameserver); MG_FREE((char *) mgr->nameserver);
if (nameserver != NULL) { if (nameserver != NULL) {
mgr->nameserver = strdup(nameserver); mgr->nameserver = strdup(nameserver);
} }
...@@ -12184,6 +12187,7 @@ struct mg_connection *mg_sntp_get_time(struct mg_mgr *mgr, ...@@ -12184,6 +12187,7 @@ struct mg_connection *mg_sntp_get_time(struct mg_mgr *mgr,
#if CS_PLATFORM == CS_P_CC3200 #if CS_PLATFORM == CS_P_CC3200
/* Amalgamated: #include "common/mg_mem.h" */
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
...@@ -12209,7 +12213,7 @@ int asprintf(char **strp, const char *fmt, ...) { ...@@ -12209,7 +12213,7 @@ int asprintf(char **strp, const char *fmt, ...) {
va_list ap; va_list ap;
int len; int len;
*strp = malloc(BUFSIZ); *strp = MG_MALLOC(BUFSIZ);
if (*strp == NULL) return -1; if (*strp == NULL) return -1;
va_start(ap, fmt); va_start(ap, fmt);
...@@ -12217,7 +12221,7 @@ int asprintf(char **strp, const char *fmt, ...) { ...@@ -12217,7 +12221,7 @@ int asprintf(char **strp, const char *fmt, ...) {
va_end(ap); va_end(ap);
if (len > 0) { if (len > 0) {
*strp = realloc(*strp, len + 1); *strp = MG_REALLOC(*strp, len + 1);
if (*strp == NULL) return -1; if (*strp == NULL) return -1;
} }
...@@ -12396,6 +12400,7 @@ void fs_slfs_set_new_file_size(const char *name, size_t size); ...@@ -12396,6 +12400,7 @@ void fs_slfs_set_new_file_size(const char *name, size_t size);
#include <simplelink/include/fs.h> #include <simplelink/include/fs.h>
/* Amalgamated: #include "common/cs_dbg.h" */ /* Amalgamated: #include "common/cs_dbg.h" */
/* Amalgamated: #include "common/mg_mem.h" */
/* From sl_fs.c */ /* From sl_fs.c */
extern int set_errno(int e); extern int set_errno(int e);
...@@ -12481,7 +12486,7 @@ int fs_slfs_open(const char *pathname, int flags, mode_t mode) { ...@@ -12481,7 +12486,7 @@ int fs_slfs_open(const char *pathname, int flags, mode_t mode) {
if (s_sl_file_size_hints[i].name != NULL && if (s_sl_file_size_hints[i].name != NULL &&
strcmp(s_sl_file_size_hints[i].name, pathname) == 0) { strcmp(s_sl_file_size_hints[i].name, pathname) == 0) {
size = s_sl_file_size_hints[i].size; size = s_sl_file_size_hints[i].size;
free(s_sl_file_size_hints[i].name); MG_FREE(s_sl_file_size_hints[i].name);
s_sl_file_size_hints[i].name = NULL; s_sl_file_size_hints[i].name = NULL;
break; break;
} }
...@@ -13631,6 +13636,8 @@ const struct mg_iface_vtable mg_default_iface_vtable = MG_SL_IFACE_VTABLE; ...@@ -13631,6 +13636,8 @@ const struct mg_iface_vtable mg_default_iface_vtable = MG_SL_IFACE_VTABLE;
#if MG_ENABLE_SSL && MG_SSL_IF == MG_SSL_IF_SIMPLELINK #if MG_ENABLE_SSL && MG_SSL_IF == MG_SSL_IF_SIMPLELINK
/* Amalgamated: #include "common/mg_mem.h" */
struct mg_ssl_if_ctx { struct mg_ssl_if_ctx {
char *ssl_cert; char *ssl_cert;
char *ssl_key; char *ssl_key;
...@@ -13753,7 +13760,7 @@ static char *sl_pem2der(const char *pem_file) { ...@@ -13753,7 +13760,7 @@ static char *sl_pem2der(const char *pem_file) {
/* Strip the SL: prefix we added since NWP does not expect it. */ /* Strip the SL: prefix we added since NWP does not expect it. */
memmove(der_file, der_file + 3, l - 2 /* including \0 */); memmove(der_file, der_file + 3, l - 2 /* including \0 */);
} else { } else {
free(der_file); MG_FREE(der_file);
der_file = NULL; der_file = NULL;
} }
return der_file; return der_file;
...@@ -13789,8 +13796,8 @@ int sl_set_ssl_opts(struct mg_connection *nc) { ...@@ -13789,8 +13796,8 @@ int sl_set_ssl_opts(struct mg_connection *nc) {
} else { } else {
err = -1; err = -1;
} }
free(ssl_cert); MG_FREE(ssl_cert);
free(ssl_key); MG_FREE(ssl_key);
if (err != 0) return err; if (err != 0) return err;
} }
if (ctx->ssl_ca_cert != NULL) { if (ctx->ssl_ca_cert != NULL) {
...@@ -13804,7 +13811,7 @@ int sl_set_ssl_opts(struct mg_connection *nc) { ...@@ -13804,7 +13811,7 @@ int sl_set_ssl_opts(struct mg_connection *nc) {
} else { } else {
err = -1; err = -1;
} }
free(ssl_ca_cert); MG_FREE(ssl_ca_cert);
if (err != 0) return err; if (err != 0) return err;
} }
} }
...@@ -13888,6 +13895,8 @@ void mg_lwip_mgr_schedule_poll(struct mg_mgr *mgr); ...@@ -13888,6 +13895,8 @@ void mg_lwip_mgr_schedule_poll(struct mg_mgr *mgr);
#if MG_ENABLE_NET_IF_LWIP_LOW_LEVEL #if MG_ENABLE_NET_IF_LWIP_LOW_LEVEL
/* Amalgamated: #include "common/mg_mem.h" */
#include <lwip/pbuf.h> #include <lwip/pbuf.h>
#include <lwip/tcp.h> #include <lwip/tcp.h>
#if CS_PLATFORM != CS_P_STM32 #if CS_PLATFORM != CS_P_STM32
...@@ -14057,7 +14066,7 @@ static void mg_lwip_handle_recv_tcp(struct mg_connection *nc) { ...@@ -14057,7 +14066,7 @@ static void mg_lwip_handle_recv_tcp(struct mg_connection *nc) {
while (cs->rx_chain != NULL) { while (cs->rx_chain != NULL) {
struct pbuf *seg = cs->rx_chain; struct pbuf *seg = cs->rx_chain;
size_t len = (seg->len - cs->rx_offset); size_t len = (seg->len - cs->rx_offset);
char *data = (char *) malloc(len); char *data = (char *) MG_MALLOC(len);
if (data == NULL) { if (data == NULL) {
mgos_unlock(); mgos_unlock();
DBG(("OOM")); DBG(("OOM"));
...@@ -14179,7 +14188,7 @@ static void mg_lwip_handle_recv_udp(struct mg_connection *nc) { ...@@ -14179,7 +14188,7 @@ static void mg_lwip_handle_recv_udp(struct mg_connection *nc) {
struct pbuf *p = sap->next; struct pbuf *p = sap->next;
cs->rx_chain = pbuf_dechain(p); cs->rx_chain = pbuf_dechain(p);
size_t data_len = p->len; size_t data_len = p->len;
char *data = (char *) malloc(data_len); char *data = (char *) MG_MALLOC(data_len);
if (data != NULL) { if (data != NULL) {
pbuf_copy_partial(p, data, data_len, 0); pbuf_copy_partial(p, data, data_len, 0);
pbuf_free(p); pbuf_free(p);
...@@ -14402,7 +14411,7 @@ void mg_lwip_if_recved(struct mg_connection *nc, size_t len) { ...@@ -14402,7 +14411,7 @@ void mg_lwip_if_recved(struct mg_connection *nc, size_t len) {
int mg_lwip_if_create_conn(struct mg_connection *nc) { int mg_lwip_if_create_conn(struct mg_connection *nc) {
struct mg_lwip_conn_state *cs = struct mg_lwip_conn_state *cs =
(struct mg_lwip_conn_state *) calloc(1, sizeof(*cs)); (struct mg_lwip_conn_state *) MG_CALLOC(1, sizeof(*cs));
if (cs == NULL) return 0; if (cs == NULL) return 0;
cs->nc = nc; cs->nc = nc;
nc->sock = (intptr_t) cs; nc->sock = (intptr_t) cs;
...@@ -14426,7 +14435,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) { ...@@ -14426,7 +14435,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) {
pbuf_free(seg); pbuf_free(seg);
} }
memset(cs, 0, sizeof(*cs)); memset(cs, 0, sizeof(*cs));
free(cs); MG_FREE(cs);
} else if (nc->listener == NULL) { } else if (nc->listener == NULL) {
/* Only close outgoing UDP pcb or listeners. */ /* Only close outgoing UDP pcb or listeners. */
struct udp_pcb *upcb = cs->pcb.udp; struct udp_pcb *upcb = cs->pcb.udp;
...@@ -14435,7 +14444,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) { ...@@ -14435,7 +14444,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) {
udp_remove(upcb); udp_remove(upcb);
} }
memset(cs, 0, sizeof(*cs)); memset(cs, 0, sizeof(*cs));
free(cs); MG_FREE(cs);
} }
nc->sock = INVALID_SOCKET; nc->sock = INVALID_SOCKET;
} }
...@@ -14744,6 +14753,7 @@ uint32_t mg_lwip_get_poll_delay_ms(struct mg_mgr *mgr) { ...@@ -14744,6 +14753,7 @@ uint32_t mg_lwip_get_poll_delay_ms(struct mg_mgr *mgr) {
#if MG_ENABLE_SSL && MG_NET_IF == MG_NET_IF_LWIP_LOW_LEVEL #if MG_ENABLE_SSL && MG_NET_IF == MG_NET_IF_LWIP_LOW_LEVEL
/* Amalgamated: #include "common/mg_mem.h" */
/* Amalgamated: #include "common/cs_dbg.h" */ /* Amalgamated: #include "common/cs_dbg.h" */
#include <lwip/pbuf.h> #include <lwip/pbuf.h>
...@@ -14843,12 +14853,12 @@ void mg_lwip_ssl_recv(struct mg_connection *nc) { ...@@ -14843,12 +14853,12 @@ void mg_lwip_ssl_recv(struct mg_connection *nc) {
/* Don't deliver data before connect callback */ /* Don't deliver data before connect callback */
if (nc->flags & MG_F_CONNECTING) return; if (nc->flags & MG_F_CONNECTING) return;
while (nc->recv_mbuf.len < MG_LWIP_SSL_RECV_MBUF_LIMIT) { while (nc->recv_mbuf.len < MG_LWIP_SSL_RECV_MBUF_LIMIT) {
char *buf = (char *) malloc(MG_LWIP_SSL_IO_SIZE); char *buf = (char *) MG_MALLOC(MG_LWIP_SSL_IO_SIZE);
if (buf == NULL) return; if (buf == NULL) return;
int ret = mg_ssl_if_read(nc, buf, MG_LWIP_SSL_IO_SIZE); int ret = mg_ssl_if_read(nc, buf, MG_LWIP_SSL_IO_SIZE);
DBG(("%p %p SSL_read %u = %d", nc, cs->rx_chain, MG_LWIP_SSL_IO_SIZE, ret)); DBG(("%p %p SSL_read %u = %d", nc, cs->rx_chain, MG_LWIP_SSL_IO_SIZE, ret));
if (ret <= 0) { if (ret <= 0) {
free(buf); MG_FREE(buf);
if (ret == MG_SSL_WANT_WRITE) { if (ret == MG_SSL_WANT_WRITE) {
nc->flags |= MG_F_WANT_WRITE; nc->flags |= MG_F_WANT_WRITE;
return; return;
......
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