char* lua_sandbox_destroy(lua_sandbox* lsb, const char* data_file) { char* err = NULL; if (lsb == NULL) return err; if (lsb->m_lua != NULL && data_file != NULL && strnlen(data_file, 1) > 0) { if (preserve_global_data(lsb, data_file) != 0) { size_t len = strnlen(lsb->m_error_message, ERROR_SIZE); err = malloc(len + 1); if (err != NULL) { strcpy(err, lsb->m_error_message); } } } sandbox_terminate(lsb); free(lsb->m_output.m_data); free(lsb->m_lua_file); free(lsb); return err; }
char* lsb_destroy(lsb_lua_sandbox *lsb) { char *err = NULL; if (!lsb) { return err; } if (preserve_global_data(lsb)) { size_t len = strlen(lsb->error_message); err = malloc(len + 1); if (err != NULL) { strcpy(err, lsb->error_message); } } lsb_terminate(lsb, NULL); lsb_free_output_buffer(&lsb->output); free(lsb->state_file); free(lsb->lua_file); free(lsb); return err; }