/* * Dynamic patch to jump to bailout action * Copyright (C) 2024-2025 Nguyễn Gia Phong * * This file is part of taosc. * * Taosc is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Taosc is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with taosc. If not, see . */ #include "stdlib.c" static const void *destination; /* * Get an environment variable and parse as a number. * Return 0 on error. */ static uint64_t getenvull(const char *name) { const char *const str = getenv(name); if (str == NULL) return 0ULL; errno = 0; const uint64_t ull = strtoull(str, NULL, 0); if (errno) return 0ULL; return ull; } void init(int argc, const char *const *argv, char **envp) { environ = envp; destination = (void *) getenvull("TAOSC_DEST"); } const void *dest(void) { return destination; }