Пример #1
0
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;
}
Пример #2
0
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;
}