Merge pull request #4473 from mysterywolf/AT

[at][bug] 修复内存泄漏的bug
This commit is contained in:
Bernard Xiong 2021-03-17 17:57:22 +08:00 committed by GitHub
commit 6a80bcef1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 2 deletions

View File

@ -8,6 +8,7 @@
* 2018-03-30 chenyong first version * 2018-03-30 chenyong first version
* 2018-04-12 chenyong add client implement * 2018-04-12 chenyong add client implement
* 2018-08-17 chenyong multiple client support * 2018-08-17 chenyong multiple client support
* 2021-03-17 Meco Man fix a buf of leaking memory
*/ */
#include <at.h> #include <at.h>
@ -104,18 +105,23 @@ void at_delete_resp(at_response_t resp)
*/ */
at_response_t at_resp_set_info(at_response_t resp, rt_size_t buf_size, rt_size_t line_num, rt_int32_t timeout) at_response_t at_resp_set_info(at_response_t resp, rt_size_t buf_size, rt_size_t line_num, rt_int32_t timeout)
{ {
char *p_temp;
RT_ASSERT(resp); RT_ASSERT(resp);
if (resp->buf_size != buf_size) if (resp->buf_size != buf_size)
{ {
resp->buf_size = buf_size; resp->buf_size = buf_size;
resp->buf = (char *) rt_realloc(resp->buf, buf_size); p_temp = (char *) rt_realloc(resp->buf, buf_size);
if (!resp->buf) if (p_temp == RT_NULL)
{ {
LOG_D("No memory for realloc response buffer size(%d).", buf_size); LOG_D("No memory for realloc response buffer size(%d).", buf_size);
return RT_NULL; return RT_NULL;
} }
else
{
resp->buf = p_temp;
}
} }
resp->line_num = line_num; resp->line_num = line_num;