|
1 /* $OpenBSD: xmalloc.h,v 1.2 2016/11/17 10:06:08 nicm Exp $ */ |
|
2 |
|
3 /* |
|
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> |
|
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
|
6 * All rights reserved |
|
7 * Created: Mon Mar 20 22:09:17 1995 ylo |
|
8 * |
|
9 * Versions of malloc and friends that check their results, and never return |
|
10 * failure (they call fatal if they encounter an error). |
|
11 * |
|
12 * As far as I am concerned, the code I have written for this software |
|
13 * can be used freely for any purpose. Any derived versions of this |
|
14 * software must be clearly marked as such, and if the derived work is |
|
15 * incompatible with the protocol description in the RFC file, it must be |
|
16 * called by a name other than "ssh" or "Secure Shell". |
|
17 */ |
|
18 |
|
19 #ifndef XMALLOC_H |
|
20 #define XMALLOC_H |
|
21 |
|
22 void *xmalloc(size_t); |
|
23 void *xcalloc(size_t, size_t); |
|
24 void *xrealloc(void *, size_t); |
|
25 void *xreallocarray(void *, size_t, size_t); |
|
26 char *xstrdup(const char *); |
|
27 char *xstrndup(const char *, size_t); |
|
28 int xasprintf(char **, const char *, ...) |
|
29 __attribute__((__format__ (printf, 2, 3))) |
|
30 __attribute__((__nonnull__ (2))); |
|
31 int xvasprintf(char **, const char *, va_list) |
|
32 __attribute__((__nonnull__ (2))); |
|
33 int xsnprintf(char *, size_t, const char *, ...) |
|
34 __attribute__((__format__ (printf, 3, 4))) |
|
35 __attribute__((__nonnull__ (3))) |
|
36 __attribute__((__bounded__ (__string__, 1, 2))); |
|
37 int xvsnprintf(char *, size_t, const char *, va_list) |
|
38 __attribute__((__nonnull__ (3))) |
|
39 __attribute__((__bounded__ (__string__, 1, 2))); |
|
40 |
|
41 #endif /* XMALLOC_H */ |