| /* A wrapper around vasprintf that dies in case of an error. |
| Copyright (c) 2021 Dmitry V. Levin <[email protected]> |
| This file is part of elfutils. |
| |
| This file is free software; you can redistribute it and/or modify |
| it under the terms of either |
| |
| * the GNU Lesser General Public License as published by the Free |
| Software Foundation; either version 3 of the License, or (at |
| your option) any later version |
| |
| or |
| |
| * the GNU General Public License as published by the Free |
| Software Foundation; either version 2 of the License, or (at |
| your option) any later version |
| |
| or both in parallel, as here. |
| |
| elfutils 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 |
| General Public License for more details. |
| |
| You should have received copies of the GNU General Public License and |
| the GNU Lesser General Public License along with this program. If |
| not, see <http://www.gnu.org/licenses/>. */ |
| |
| #ifdef HAVE_CONFIG_H |
| # include <config.h> |
| #endif |
| |
| #include <stdarg.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <libintl.h> |
| #include "libeu.h" |
| #include "system.h" |
| |
| char * |
| xasprintf (const char *fmt, ...) |
| { |
| char *res; |
| va_list ap; |
| |
| va_start (ap, fmt); |
| if (unlikely (vasprintf (&res, fmt, ap) < 0)) |
| error (EXIT_FAILURE, 0, _("memory exhausted")); |
| va_end(ap); |
| |
| return res; |
| } |