/**
malloc that aborts with smb_panic on fail or zero size.
**/
-
void *smb_xmalloc(size_t size)
{
void *p;
/**
Memdup with smb_panic on fail.
**/
-
void *smb_xmemdup(const void *p, size_t size)
{
void *p2;
/**
strdup that aborts on malloc fail.
**/
-
char *smb_xstrdup(const char *s)
{
char *s1 = strdup(s);
return s1;
}
+/*
+ vasprintf that aborts on malloc fail
+*/
+int smb_xvasprintf(char **ptr, const char *format, va_list ap)
+{
+ int n;
+ n = vasprintf(ptr, format, ap);
+ if (n == -1 || ! *ptr) {
+ smb_panic("smb_xvasprintf: out of memory");
+ }
+ return n;
+}
+
/*****************************************************************
like strdup but for memory
*****************************************************************/