问题描述
请有人帮我找出为什么使用 cJson 出现内存泄漏我找不到问题。每当我进行身份验证时,实时内存都会减少。 json 仅在那时创建,我已经更改了控制逻辑,但无论如何它总是以泄漏内存结束
esp_err_t loginWS(httpd_req_t *request) {
JwtService jwtService;
AutenticationModel autenticationModel;
AutenticationService autenticationService;
autenticationModel = autenticationService.loadRegister();
cJSON *jsonWs;
cJSON *params;
std::string token = "";
std::string msg = "";
std::string body = "";
std::string login = "";
std::string password = "";
bool error;
body = _getBody(request); //json received
jsonWs = cJSON_Parse(body.c_str());
login = cJSON_GetobjectItem(jsonWs,"_login")->valuestring;
password = cJSON_GetobjectItem(jsonWs,"_password")->valuestring;
if (login == autenticacaoModel.getLogin() && senha == autenticacaoModel.getpassword()) {
token = jwtService.criarJwt();
msg = "";
error = false;
} else {
token = "";
msg = "Login or password invalid";
error = true;
}
cJSON_AddItemToObject(jsonWs = cJSON_CreateObject(),"token",params = cJSON_CreateObject());
cJSON_AddItemToObject(params,cJSON_CreateString(token.c_str()));
cJSON_AddItemToObject(jsonWs,"message","error",cJSON_CreateBool(erro));
cJSON_AddItemToObject(params,"msg",cJSON_CreateString(mensagem.c_str()));
const char *texto = cJSON_Print(jsonWs);
cJSON_Delete(jsonWs);
httpd_resp_set_hdr(request,"Content-Type","application/json");
httpd_resp_sendstr(request,texto);
free((void *)texto);
return ESP_OK;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)