aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'libctf/ctf-util.c')
-rw-r--r--libctf/ctf-util.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/libctf/ctf-util.c b/libctf/ctf-util.c
index d10b2b5..d4a1c5a 100644
--- a/libctf/ctf-util.c
+++ b/libctf/ctf-util.c
@@ -103,7 +103,7 @@ ctf_sym_to_elf64 (const Elf32_Sym *src, Elf64_Sym *dst)
return dst;
}
-/* A string appender working on dynamic strings. */
+/* A string appender working on dynamic strings. Returns NULL on OOM. */
char *
ctf_str_append (char *s, const char *append)
@@ -127,6 +127,19 @@ ctf_str_append (char *s, const char *append)
return s;
}
+/* A version of ctf_str_append that returns the old string on OOM. */
+
+char *
+ctf_str_append_noerr (char *s, const char *append)
+{
+ char *new_s;
+
+ new_s = ctf_str_append (s, append);
+ if (!new_s)
+ return s;
+ return new_s;
+}
+
/* A realloc() that fails noisily if called with any ctf_str_num_users. */
void *
ctf_realloc (ctf_file_t *fp, void *ptr, size_t size)