projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CI (GitHub & sourcehut): add clang-tidy checks.
[tinc]
/
src
/
xalloc.h
diff --git
a/src/xalloc.h
b/src/xalloc.h
index
42d0d95
..
34f02d0
100644
(file)
--- a/
src/xalloc.h
+++ b/
src/xalloc.h
@@
-1,7
+1,10
@@
+#ifndef TINC_XALLOC_H
+#define TINC_XALLOC_H
+
/*
/*
- xalloc.h -- malloc and related fuctions with out of memory checking
+ xalloc.h -- malloc and related fu
n
ctions with out of memory checking
Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
- Copyright (C) 2011 Guus Sliepen <guus@tinc-vpn.org>
+ Copyright (C) 2011
-2013
Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-15,46
+18,74
@@
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., Foundation,
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., Foundation,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-#ifndef __TINC_XALLOC_H__
-#define __TINC_XALLOC_H__
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+static inline void *xmalloc(size_t n) __attribute__((__malloc__));
static inline void *xmalloc(size_t n) {
void *p = malloc(n);
static inline void *xmalloc(size_t n) {
void *p = malloc(n);
- if(!p)
+
+ if(!p) {
abort();
abort();
+ }
+
return p;
}
return p;
}
-static inline void *xmalloc_and_zero(size_t n) {
+static inline void *xzalloc(size_t n) __attribute__((__malloc__));
+static inline void *xzalloc(size_t n) {
void *p = calloc(1, n);
void *p = calloc(1, n);
- if(!p)
+
+ if(!p) {
abort();
abort();
+ }
+
return p;
}
static inline void *xrealloc(void *p, size_t n) {
p = realloc(p, n);
return p;
}
static inline void *xrealloc(void *p, size_t n) {
p = realloc(p, n);
- if(!p)
+
+ if(!p) {
abort();
abort();
+ }
+
return p;
}
return p;
}
+static inline char *xstrdup(const char *s) __attribute__((__malloc__)) __attribute((__nonnull__));
static inline char *xstrdup(const char *s) {
char *p = strdup(s);
static inline char *xstrdup(const char *s) {
char *p = strdup(s);
- if(!p)
+
+ if(!p) {
abort();
abort();
+ }
+
return p;
}
static inline int xvasprintf(char **strp, const char *fmt, va_list ap) {
return p;
}
static inline int xvasprintf(char **strp, const char *fmt, va_list ap) {
+#ifdef HAVE_MINGW
+ char buf[1024];
+ int result = vsnprintf(buf, sizeof(buf), fmt, ap);
+
+ if(result < 0) {
+ abort();
+ }
+
+ *strp = xstrdup(buf);
+#else
int result = vasprintf(strp, fmt, ap);
int result = vasprintf(strp, fmt, ap);
- if(result < 0)
+
+ if(result < 0) {
abort();
abort();
+ }
+
+#endif
return result;
}
return result;
}
+static inline int xasprintf(char **strp, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
static inline int xasprintf(char **strp, const char *fmt, ...) {
va_list ap;
va_start(ap, fmt);
static inline int xasprintf(char **strp, const char *fmt, ...) {
va_list ap;
va_start(ap, fmt);