Browse Source

【主线待合】解决lua中free空指针和堆栈空间混用导致的释放错误

master
Lizongdi 17 hours ago
parent
commit
6a408fae2e
  1. 7
      lua/lua.c

7
lua/lua.c

@ -313,7 +313,8 @@ static char *readline(const char *_pcPrompt, char *_pcBuffer, int _iSize, int _i
} }
linebuffer[len] = '\0'; linebuffer[len] = '\0';
char *result = strdup(linebuffer); char *result = (char *)RD_MALLOC(strlen(linebuffer) + 1);
if (result) strcpy(result, linebuffer);
if (len > 0 && strcmp(linebuffer, "exit") != 0) if (len > 0 && strcmp(linebuffer, "exit") != 0)
{ {
@ -529,7 +530,7 @@ int lua_repl(char *_pcBuffer, int _iSize, int _iEcho)
} }
else else
{ {
RD_FREE(buffer); if (buffer) RD_FREE(buffer);
buffer = line; buffer = line;
buffer_len = strlen(line); buffer_len = strlen(line);
} }
@ -672,7 +673,7 @@ cleanup:
RD_FREE(wrapped_code); RD_FREE(wrapped_code);
wrapped_code = NULL; wrapped_code = NULL;
} }
RD_FREE(buffer); if (buffer) RD_FREE(buffer);
buffer = NULL; buffer = NULL;
lua_close(L); lua_close(L);
L = NULL; L = NULL;

Loading…
Cancel
Save