aboutsummaryrefslogtreecommitdiffstats
path: root/strdup.c
diff options
context:
space:
mode:
Diffstat (limited to 'strdup.c')
-rw-r--r--strdup.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/strdup.c b/strdup.c
new file mode 100644
index 0000000..0b1c8ee
--- /dev/null
+++ b/strdup.c
@@ -0,0 +1,22 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+void
+liberror_strdup_failed(const char *s)
+{
+ liberror_set_error_errno(errno == ENOMEM ? "Out of memory" : "", "strdup", errno);
+ (void) s;
+}
+
+
+char *
+liberror_strdup(const char *s)
+{
+ char *ret = malloc(s);
+ if (ret)
+ return ret;
+ liberror_save_backtrace(NULL);
+ liberror_strdup_failed(s);
+ return NULL;
+}