diff options
author | Dustin Kirkland <kirkland@canonical.com> | 2009-01-08 09:25:33 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-01-08 09:25:33 +1100 |
commit | 1a0ee0baf049809f9e67d60bb8158801eada3bd5 (patch) | |
tree | 2603b2aa3faebbd4b97d14728426f93dc302b189 /mdadm.h | |
parent | 89a10d84cb76492b7d8ea96d0a206b54702bcaff (diff) | |
download | mdadm-1a0ee0baf049809f9e67d60bb8158801eada3bd5.tar.gz mdadm-1a0ee0baf049809f9e67d60bb8158801eada3bd5.tar.xz mdadm-1a0ee0baf049809f9e67d60bb8158801eada3bd5.zip |
Fail overtly when asprintf fails to allocate memory
.. rather that causing a less-obvious violation of segments.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'mdadm.h')
-rw-r--r-- | mdadm.h | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -528,6 +528,17 @@ extern int open_mddev(char *dev, int autof); extern int open_mddev_devnum(char *devname, int devnum, char *name, char *chosen_name, int parts); +#include <assert.h> +#include <stdarg.h> +static inline int xasprintf(char **strp, const char *fmt, ...) { + va_list ap; + int ret; + va_start(ap, fmt); + ret = asprintf(strp, fmt, ap); + va_end(ap); + assert(ret >= 0); + return ret; +} #define LEVEL_MULTIPATH (-4) #define LEVEL_LINEAR (-1) |