summaryrefslogtreecommitdiffstats
path: root/lib/umberlog.c
diff options
context:
space:
mode:
authorGergely Nagy <algernon@balabit.hu>2012-06-22 15:11:42 +0200
committerGergely Nagy <algernon@balabit.hu>2012-06-22 15:11:42 +0200
commit645e1eb4155bccb4586e63febfbba7828d4a61d7 (patch)
treeed8d47a00533e1806579353ac028eb1025c885c2 /lib/umberlog.c
parent88c48725d12663dd807e28d65871f8db4ac7273e (diff)
downloadlibumberlog-645e1eb4155bccb4586e63febfbba7828d4a61d7.tar.gz
libumberlog-645e1eb4155bccb4586e63febfbba7828d4a61d7.tar.xz
libumberlog-645e1eb4155bccb4586e63febfbba7828d4a61d7.zip
Fix error handling in buffer.c
* Don't lose old msg on realloc() failure * Don't dereference NULL on failure when buffer = (...) if (!buffer) { buffer->len = orig_len; ...} * To avoid the above pattern, use integer return values: "buffer" itself will not change in any case. * Add missing error handling Signed-off-by: Miloslav Trmač <mitr@redhat.com> Signed-off-by: Gergely Nagy <algernon@balabit.hu>
Diffstat (limited to 'lib/umberlog.c')
-rw-r--r--lib/umberlog.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/umberlog.c b/lib/umberlog.c
index e4eb5d3..fd925e9 100644
--- a/lib/umberlog.c
+++ b/lib/umberlog.c
@@ -362,7 +362,8 @@ _ul_vformat (ul_buffer_t *buffer, int format_version,
if (!value)
return NULL;
- ul_buffer_reset (buffer);
+ if (ul_buffer_reset (buffer) != 0)
+ return NULL;
buffer = ul_buffer_append (buffer, "msg", value);
if (buffer == NULL)