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 27 int debug; 28 29 void * 30 xmalloc(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 40 void * 41 xzalloc(size_t size) 42 { 43 void *p; 44 45 p = xmalloc(size); 46 memset(p, 0, size); 47 return p; 48 } 49 50 void * 51 xreallocarray(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 61 char * 62 xstrdup(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 72 int 73 xasprintf(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