FIX ZNJK-800 PPPoE Session memory 重复释放
RCA 重复释放用户以及用户消息内存 SOL 修正内存释放逻辑
This commit is contained in:
parent
22f15ab00f
commit
3739efe99a
|
@ -13,7 +13,7 @@ PKG_SEARCH_MODULE(LIBSSL REQUIRED libssl)
|
||||||
PKG_SEARCH_MODULE(LIBCRYPTO REQUIRED libcrypto)
|
PKG_SEARCH_MODULE(LIBCRYPTO REQUIRED libcrypto)
|
||||||
|
|
||||||
SET(COMMON_LIBS ${LIBCURL_LDFLAGS} ${LIBSSL_LDFLAGS} ${LIBCRYPTO_LDFLAGS})
|
SET(COMMON_LIBS ${LIBCURL_LDFLAGS} ${LIBSSL_LDFLAGS} ${LIBCRYPTO_LDFLAGS})
|
||||||
SET(COMMON_LIBS ${COMMON_LIBS} "-ldl -lpthread -lzlog -lm -luv -lzmq -luuid -lconfig -ljemalloc")
|
SET(COMMON_LIBS ${COMMON_LIBS} "-ldl -lpthread -lzlog -lm -luv -lzmq -luuid -lconfig")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(include ./ ./include ./libs/include ./lwip/src/include ./lwip/src/arch_linux/include ${COMMON_INCLUDE})
|
INCLUDE_DIRECTORIES(include ./ ./include ./libs/include ./lwip/src/include ./lwip/src/arch_linux/include ${COMMON_INCLUDE})
|
||||||
|
|
||||||
|
|
|
@ -75,15 +75,13 @@ static void free_remove_user(PMQ_DATA_REMOVE_USER p) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void free_add_user(PMQ_DATA_ADD_USER p) {
|
static void free_add_user(PMQ_DATA_ADD_USER p) {
|
||||||
int i, j;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < p->infoCount; i++) {
|
for (i = 0; i < p->infoCount; i++) {
|
||||||
for (j = 0; j < p[i].pInfo->userCount; j++) {
|
|
||||||
if (p[i].pInfo->pUser) {
|
if (p[i].pInfo->pUser) {
|
||||||
free(p[i].pInfo->pUser);
|
free(p[i].pInfo->pUser);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
free(p->pInfo);
|
free(p->pInfo);
|
||||||
free(p);
|
free(p);
|
||||||
|
@ -94,7 +92,7 @@ static void free_mq_data_msg(PMQ_DATA_MSG pMsg) {
|
||||||
free((void *)pMsg->entity);
|
free((void *)pMsg->entity);
|
||||||
}
|
}
|
||||||
if (pMsg->message) {
|
if (pMsg->message) {
|
||||||
free((void *)pMsg->entity);
|
free((void *)pMsg->message);
|
||||||
}
|
}
|
||||||
if (pMsg->params) {
|
if (pMsg->params) {
|
||||||
free((void *)pMsg->params);
|
free((void *)pMsg->params);
|
||||||
|
@ -170,6 +168,8 @@ PMQ_DATA_REMOVE_USER decode_remove_user_msg(const char *pStrJson, PMQ_DATA_REMOV
|
||||||
PMQ_DATA_ADD_USER decode_add_user_msg(const char *pStrJson, PMQ_DATA_ADD_USER *pAddUser) {
|
PMQ_DATA_ADD_USER decode_add_user_msg(const char *pStrJson, PMQ_DATA_ADD_USER *pAddUser) {
|
||||||
cJSON *pJsonRoot = cJSON_Parse(pStrJson);
|
cJSON *pJsonRoot = cJSON_Parse(pStrJson);
|
||||||
|
|
||||||
|
dzlog_info("Data Json:\n%s\n", pStrJson);
|
||||||
|
|
||||||
if (pJsonRoot) {
|
if (pJsonRoot) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ typedef struct {
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
} JM_BUF, *PJM_BUF;
|
} JM_BUF, *PJM_BUF;
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void print_my_jemalloc_data(void *opaque, const char *str) {
|
static void print_my_jemalloc_data(void *opaque, const char *str) {
|
||||||
PJM_BUF pBuf = (PJM_BUF)opaque;
|
PJM_BUF pBuf = (PJM_BUF)opaque;
|
||||||
unsigned int len = strlen(str);
|
unsigned int len = strlen(str);
|
||||||
|
@ -35,6 +36,7 @@ static void print_my_jemalloc_data(void *opaque, const char *str) {
|
||||||
pBuf->buf = buf;
|
pBuf->buf = buf;
|
||||||
pBuf->len += len;
|
pBuf->len += len;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void wait_buf(PJM_BUF pBuf) {
|
static void wait_buf(PJM_BUF pBuf) {
|
||||||
do {
|
do {
|
||||||
|
@ -59,6 +61,7 @@ const char *on_msg_cmd(const char *pCmd) {
|
||||||
|
|
||||||
if (strcmp(pMsg->cmd, "get") == 0) {
|
if (strcmp(pMsg->cmd, "get") == 0) {
|
||||||
if (strcmp(pMsg->key, "mem_info") == 0) {
|
if (strcmp(pMsg->key, "mem_info") == 0) {
|
||||||
|
#if 0
|
||||||
JM_BUF jb;
|
JM_BUF jb;
|
||||||
|
|
||||||
jb.buf = NULL;
|
jb.buf = NULL;
|
||||||
|
@ -66,9 +69,9 @@ const char *on_msg_cmd(const char *pCmd) {
|
||||||
|
|
||||||
malloc_stats_print(print_my_jemalloc_data, &jb, NULL);
|
malloc_stats_print(print_my_jemalloc_data, &jb, NULL);
|
||||||
wait_buf(&jb);
|
wait_buf(&jb);
|
||||||
|
#endif
|
||||||
pRsp = strdup(jb.buf);
|
pRsp = strdup("Unsupport");
|
||||||
dallocx(jb.buf, MALLOCX_TCACHE_NONE);
|
//dallocx(jb.buf, MALLOCX_TCACHE_NONE);
|
||||||
} else if (strcmp(pMsg->key, "cfg_all") == 0) {
|
} else if (strcmp(pMsg->key, "cfg_all") == 0) {
|
||||||
pRsp = (char *)config_item_dump_fmt(NULL);
|
pRsp = (char *)config_item_dump_fmt(NULL);
|
||||||
} else if (strcmp(pMsg->key, "sys_info") == 0) {
|
} else if (strcmp(pMsg->key, "sys_info") == 0) {
|
||||||
|
|
|
@ -330,14 +330,15 @@ static err_t netif_input_data(struct pbuf *p, struct netif *inp) {
|
||||||
if (ebuf != NULL) {
|
if (ebuf != NULL) {
|
||||||
if (strlen(pContext->session.data.svrBaseMac) == 0) {
|
if (strlen(pContext->session.data.svrBaseMac) == 0) {
|
||||||
if (strlen(pContext->session.data.svrBaseMac) == 0) {
|
if (strlen(pContext->session.data.svrBaseMac) == 0) {
|
||||||
|
const struct eth_hdr *payloadEth = (const struct eth_hdr *)ebuf->payload;
|
||||||
sprintf(pContext->session.data.svrBaseMac,
|
sprintf(pContext->session.data.svrBaseMac,
|
||||||
"%02X:%02X:%02X:%02X:%02X:%02X",
|
"%02X:%02X:%02X:%02X:%02X:%02X",
|
||||||
eth->src.addr[0],
|
payloadEth->src.addr[0],
|
||||||
eth->src.addr[1],
|
payloadEth->src.addr[1],
|
||||||
eth->src.addr[2],
|
payloadEth->src.addr[2],
|
||||||
eth->src.addr[3],
|
payloadEth->src.addr[3],
|
||||||
eth->src.addr[4],
|
payloadEth->src.addr[4],
|
||||||
eth->src.addr[5]);
|
payloadEth->src.addr[5]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue