/* $OpenBSD: util.c,v 1.4 2014/10/15 21:37:27 deraadt Exp $ */ /* * Copyright (c) 2012 Mark Kettenis * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #include #include #include "util.h" int debug; void * xmalloc(size_t size) { void *p; p = malloc(size); if (p == NULL) err(1, NULL); return p; } void * xzalloc(size_t size) { void *p; p = xmalloc(size); memset(p, 0, size); return p; } void * xreallocarray(void *o, size_t nmemb, size_t size) { void *p; p = reallocarray(o, nmemb, size); if (p == NULL) err(1, NULL); return p; } char * xstrdup(const char *s) { char *p; p = strdup(s); if (p == NULL) err(1, NULL); return p; } int xasprintf(char **str, const char *fmt, ...) { va_list ap; int ret; va_start(ap, fmt); ret = vasprintf(str, fmt, ap); va_end(ap); if (ret == -1) err(1, NULL); return ret; }