Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
mongoose
Commits
df5fff5e
Commit
df5fff5e
authored
Mar 23, 2017
by
David Hargat
Committed by
Cesanta Bot
Mar 23, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Consistent MG_MALLOC, MG_REALLOC and MG_FREE calls
PUBLISHED_FROM=e7f306b5d1a1366d3ec71fa238c5e18c03aadf8d
parent
d9243d1c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
77 additions
and
67 deletions
+77
-67
mongoose.c
mongoose.c
+77
-67
No files found.
mongoose.c
View file @
df5fff5e
...
...
@@ -10,21 +10,7 @@
#ifndef CS_MONGOOSE_SRC_INTERNAL_H_
#define CS_MONGOOSE_SRC_INTERNAL_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
/* Amalgamated: #include "common/mg_mem.h" */
#ifndef MBUF_REALLOC
#define MBUF_REALLOC MG_REALLOC
...
...
@@ -179,6 +165,34 @@ MG_INTERNAL int mg_sntp_parse_reply(const char *buf, int len,
#endif
/* CS_MONGOOSE_SRC_INTERNAL_H_ */
#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"
#endif
/*
...
...
@@ -595,6 +609,7 @@ struct dirent *readdir(DIR *dir);
#ifndef EXCLUDE_COMMON
/* Amalgamated: #include "common/mg_mem.h" */
/* Amalgamated: #include "common/cs_dirent.h" */
/*
...
...
@@ -602,14 +617,6 @@ struct dirent *readdir(DIR *dir);
* 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
struct
win32_dir
{
DIR
d
;
...
...
@@ -1116,6 +1123,7 @@ void mbuf_remove(struct mbuf *mb, size_t n) {
* All rights reserved
*/
/* Amalgamated: #include "common/mg_mem.h" */
/* Amalgamated: #include "common/mg_str.h" */
#include <stdlib.h>
...
...
@@ -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
r
=
{
NULL
,
0
};
if
(
s
.
len
>
0
&&
s
.
p
!=
NULL
)
{
r
.
p
=
(
char
*
)
malloc
(
s
.
len
);
r
.
p
=
(
char
*
)
MG_MALLOC
(
s
.
len
);
if
(
r
.
p
!=
NULL
)
{
memcpy
((
char
*
)
r
.
p
,
s
.
p
,
s
.
len
);
r
.
len
=
s
.
len
;
...
...
@@ -1468,13 +1476,7 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen,
#define C_DISABLE_BUILTIN_SNPRINTF 0
#endif
#ifndef MG_MALLOC
#define MG_MALLOC malloc
#endif
#ifndef MG_FREE
#define MG_FREE free
#endif
/* Amalgamated: #include "common/mg_mem.h" */
size_t
c_strnlen
(
const
char
*
s
,
size_t
maxlen
)
WEAK
;
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) {
char
*
strdup
(
const
char
*
src
)
WEAK
;
char
*
strdup
(
const
char
*
src
)
{
size_t
len
=
strlen
(
src
)
+
1
;
char
*
ret
=
malloc
(
len
);
char
*
ret
=
MG_MALLOC
(
len
);
if
(
ret
!=
NULL
)
{
strcpy
(
ret
,
src
);
}
...
...
@@ -5114,9 +5116,9 @@ static struct mg_http_proto_data *mg_http_get_proto_data(
#if MG_ENABLE_HTTP_STREAMING_MULTIPART
static
void
mg_http_free_proto_data_mp_stream
(
struct
mg_http_multipart_stream
*
mp
)
{
free
((
void
*
)
mp
->
boundary
);
free
((
void
*
)
mp
->
var_name
);
free
((
void
*
)
mp
->
file_name
);
MG_FREE
((
void
*
)
mp
->
boundary
);
MG_FREE
((
void
*
)
mp
->
var_name
);
MG_FREE
((
void
*
)
mp
->
file_name
);
memset
(
mp
,
0
,
sizeof
(
*
mp
));
}
#endif
...
...
@@ -5137,8 +5139,8 @@ static void mg_http_free_proto_data_endpoints(struct mg_http_endpoint **ep) {
while
(
current
!=
NULL
)
{
struct
mg_http_endpoint
*
tmp
=
current
->
next
;
free
((
void
*
)
current
->
name
);
free
(
current
);
MG_FREE
((
void
*
)
current
->
name
);
MG_FREE
(
current
);
current
=
tmp
;
}
...
...
@@ -5174,7 +5176,7 @@ static void mg_http_conn_destructor(void *proto_data) {
#endif
mg_http_free_proto_data_endpoints
(
&
pd
->
endpoints
);
mg_http_free_reverse_proxy_data
(
&
pd
->
reverse_proxy_data
);
free
(
proto_data
);
MG_FREE
(
proto_data
);
}
#if MG_ENABLE_FILESYSTEM
...
...
@@ -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
);
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
;
free
((
void
*
)
pd
->
mp_stream
.
var_name
);
MG_FREE
((
void
*
)
pd
->
mp_stream
.
var_name
);
pd
->
mp_stream
.
var_name
=
NULL
;
mg_http_multipart_call_handler
(
c
,
MG_EV_HTTP_MULTIPART_REQUEST_END
,
NULL
,
0
);
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) {
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
);
free
((
void
*
)
pd
->
mp_stream
.
var_name
);
MG_FREE
((
void
*
)
pd
->
mp_stream
.
var_name
);
pd
->
mp_stream
.
var_name
=
strdup
(
var_name
);
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,
struct
mg_http_multipart_part
*
mp
=
(
struct
mg_http_multipart_part
*
)
ev_data
;
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
));
mp
->
user_data
=
NULL
;
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,
nc
->
flags
|=
MG_F_SEND_AND_CLOSE
;
return
;
}
fus
->
lfn
=
(
char
*
)
malloc
(
lfn
.
len
+
1
);
fus
->
lfn
=
(
char
*
)
MG_MALLOC
(
lfn
.
len
+
1
);
memcpy
(
fus
->
lfn
,
lfn
.
p
,
lfn
.
len
);
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
,
(
"%p Receiving file %s -> %s"
,
nc
,
mp
->
file_name
,
fus
->
lfn
));
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,
*/
}
if
(
fus
->
fp
!=
NULL
)
fclose
(
fus
->
fp
);
free
(
fus
->
lfn
);
free
(
fus
);
MG_FREE
(
fus
->
lfn
);
MG_FREE
(
fus
);
mp
->
user_data
=
NULL
;
nc
->
flags
|=
MG_F_SEND_AND_CLOSE
;
break
;
...
...
@@ -7889,7 +7891,7 @@ void mg_register_http_endpoint(struct mg_connection *nc, const char *uri_path,
struct
mg_http_endpoint
*
new_ep
=
NULL
;
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
;
pd
=
mg_http_get_proto_data
(
nc
);
...
...
@@ -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
,
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
)
{
/* LCOV_EXCL_START */
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,
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
);
for
(
pos
=
0
;
(
pos
=
mg_mqtt_next_subscribe_topic
(
msg
,
&
topic
,
&
qos
,
pos
))
!=
-
1
;
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
;
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,
dns_nc
=
mg_connect
(
mgr
,
nameserver_url
,
MG_CB
(
mg_resolve_async_eh
,
NULL
));
if
(
dns_nc
==
NULL
)
{
free
(
req
);
MG_FREE
(
req
);
return
-
1
;
}
dns_nc
->
user_data
=
req
;
...
...
@@ -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
)
{
free
((
char
*
)
mgr
->
nameserver
);
MG_FREE
((
char
*
)
mgr
->
nameserver
);
if
(
nameserver
!=
NULL
)
{
mgr
->
nameserver
=
strdup
(
nameserver
);
}
...
...
@@ -12184,6 +12187,7 @@ struct mg_connection *mg_sntp_get_time(struct mg_mgr *mgr,
#if CS_PLATFORM == CS_P_CC3200
/* Amalgamated: #include "common/mg_mem.h" */
#include <stdio.h>
#include <string.h>
...
...
@@ -12209,7 +12213,7 @@ int asprintf(char **strp, const char *fmt, ...) {
va_list
ap
;
int
len
;
*
strp
=
malloc
(
BUFSIZ
);
*
strp
=
MG_MALLOC
(
BUFSIZ
);
if
(
*
strp
==
NULL
)
return
-
1
;
va_start
(
ap
,
fmt
);
...
...
@@ -12217,7 +12221,7 @@ int asprintf(char **strp, const char *fmt, ...) {
va_end
(
ap
);
if
(
len
>
0
)
{
*
strp
=
realloc
(
*
strp
,
len
+
1
);
*
strp
=
MG_REALLOC
(
*
strp
,
len
+
1
);
if
(
*
strp
==
NULL
)
return
-
1
;
}
...
...
@@ -12396,6 +12400,7 @@ void fs_slfs_set_new_file_size(const char *name, size_t size);
#include <simplelink/include/fs.h>
/* Amalgamated: #include "common/cs_dbg.h" */
/* Amalgamated: #include "common/mg_mem.h" */
/* From sl_fs.c */
extern
int
set_errno
(
int
e
);
...
...
@@ -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
&&
strcmp
(
s_sl_file_size_hints
[
i
].
name
,
pathname
)
==
0
)
{
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
;
break
;
}
...
...
@@ -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
/* Amalgamated: #include "common/mg_mem.h" */
struct
mg_ssl_if_ctx
{
char
*
ssl_cert
;
char
*
ssl_key
;
...
...
@@ -13753,7 +13760,7 @@ static char *sl_pem2der(const char *pem_file) {
/* Strip the SL: prefix we added since NWP does not expect it. */
memmove
(
der_file
,
der_file
+
3
,
l
-
2
/* including \0 */
);
}
else
{
free
(
der_file
);
MG_FREE
(
der_file
);
der_file
=
NULL
;
}
return
der_file
;
...
...
@@ -13789,8 +13796,8 @@ int sl_set_ssl_opts(struct mg_connection *nc) {
}
else
{
err
=
-
1
;
}
free
(
ssl_cert
);
free
(
ssl_key
);
MG_FREE
(
ssl_cert
);
MG_FREE
(
ssl_key
);
if
(
err
!=
0
)
return
err
;
}
if
(
ctx
->
ssl_ca_cert
!=
NULL
)
{
...
...
@@ -13804,7 +13811,7 @@ int sl_set_ssl_opts(struct mg_connection *nc) {
}
else
{
err
=
-
1
;
}
free
(
ssl_ca_cert
);
MG_FREE
(
ssl_ca_cert
);
if
(
err
!=
0
)
return
err
;
}
}
...
...
@@ -13888,6 +13895,8 @@ void mg_lwip_mgr_schedule_poll(struct mg_mgr *mgr);
#if MG_ENABLE_NET_IF_LWIP_LOW_LEVEL
/* Amalgamated: #include "common/mg_mem.h" */
#include <lwip/pbuf.h>
#include <lwip/tcp.h>
#if CS_PLATFORM != CS_P_STM32
...
...
@@ -14057,7 +14066,7 @@ static void mg_lwip_handle_recv_tcp(struct mg_connection *nc) {
while
(
cs
->
rx_chain
!=
NULL
)
{
struct
pbuf
*
seg
=
cs
->
rx_chain
;
size_t
len
=
(
seg
->
len
-
cs
->
rx_offset
);
char
*
data
=
(
char
*
)
malloc
(
len
);
char
*
data
=
(
char
*
)
MG_MALLOC
(
len
);
if
(
data
==
NULL
)
{
mgos_unlock
();
DBG
((
"OOM"
));
...
...
@@ -14179,7 +14188,7 @@ static void mg_lwip_handle_recv_udp(struct mg_connection *nc) {
struct
pbuf
*
p
=
sap
->
next
;
cs
->
rx_chain
=
pbuf_dechain
(
p
);
size_t
data_len
=
p
->
len
;
char
*
data
=
(
char
*
)
malloc
(
data_len
);
char
*
data
=
(
char
*
)
MG_MALLOC
(
data_len
);
if
(
data
!=
NULL
)
{
pbuf_copy_partial
(
p
,
data
,
data_len
,
0
);
pbuf_free
(
p
);
...
...
@@ -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
)
{
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
;
cs
->
nc
=
nc
;
nc
->
sock
=
(
intptr_t
)
cs
;
...
...
@@ -14426,7 +14435,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) {
pbuf_free
(
seg
);
}
memset
(
cs
,
0
,
sizeof
(
*
cs
));
free
(
cs
);
MG_FREE
(
cs
);
}
else
if
(
nc
->
listener
==
NULL
)
{
/* Only close outgoing UDP pcb or listeners. */
struct
udp_pcb
*
upcb
=
cs
->
pcb
.
udp
;
...
...
@@ -14435,7 +14444,7 @@ void mg_lwip_if_destroy_conn(struct mg_connection *nc) {
udp_remove
(
upcb
);
}
memset
(
cs
,
0
,
sizeof
(
*
cs
));
free
(
cs
);
MG_FREE
(
cs
);
}
nc
->
sock
=
INVALID_SOCKET
;
}
...
...
@@ -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
/* Amalgamated: #include "common/mg_mem.h" */
/* Amalgamated: #include "common/cs_dbg.h" */
#include <lwip/pbuf.h>
...
...
@@ -14843,12 +14853,12 @@ void mg_lwip_ssl_recv(struct mg_connection *nc) {
/* Don't deliver data before connect callback */
if
(
nc
->
flags
&
MG_F_CONNECTING
)
return
;
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
;
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
));
if
(
ret
<=
0
)
{
free
(
buf
);
MG_FREE
(
buf
);
if
(
ret
==
MG_SSL_WANT_WRITE
)
{
nc
->
flags
|=
MG_F_WANT_WRITE
;
return
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment