1/* $OpenBSD: util.c,v 1.5 2019/11/28 18:40:42 kn Exp $ */ 2 3/* 4 * Copyright (c) 2012 Mark Kettenis 5 * 6 * Permission to use, copy, modify, and distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19#include <err.h> 20#include <stdarg.h> 21#include <stdio.h> 22#include <stdlib.h> 23#include <string.h> 24 25#include "ldom_util.h" 26 27int debug; 28 29void * 30xmalloc(size_t size) 31{ 32 void *p; 33 34 p = malloc(size); 35 if (p == NULL) 36 err(1, NULL); 37 return p; 38} 39 40void * 41xzalloc(size_t size) 42{ 43 void *p; 44 45 p = xmalloc(size); 46 memset(p, 0, size); 47 return p; 48} 49 50void * 51xreallocarray(void *o, size_t nmemb, size_t size) 52{ 53 void *p; 54 55 p = reallocarray(o, nmemb, size); 56 if (p == NULL) 57 err(1, NULL); 58 return p; 59} 60 61char * 62xstrdup(const char *s) 63{ 64 char *p; 65 66 p = strdup(s); 67 if (p == NULL) 68 err(1, NULL); 69 return p; 70} 71 72int 73xasprintf(char **str, const char *fmt, ...) 74{ 75 va_list ap; 76 int ret; 77 78 va_start(ap, fmt); 79 ret = vasprintf(str, fmt, ap); 80 va_end(ap); 81 if (ret == -1) 82 err(1, NULL); 83 return ret; 84} 85