Zbigniew Jędrzejewski-Szmek 62fe94
From 83e341a637b75f7f592a5dc717c34d8b67ed4ffa Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: Tom Gundersen <teg@jklm.no>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Wed, 17 Sep 2014 22:17:53 +0200
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] shared: conf-parser
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Check memory allocation. Found by Coverity.
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Fixes CID #1237644.
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/shared/conf-parser.h | 4 ++++
Zbigniew Jędrzejewski-Szmek 62fe94
 1 file changed, 4 insertions(+)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h
Zbigniew Jędrzejewski-Szmek 62fe94
index a17dde9069..94185152cd 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/shared/conf-parser.h
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/shared/conf-parser.h
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -179,6 +179,9 @@ int log_syntax_internal(const char *unit, int level,
Zbigniew Jędrzejewski-Szmek 62fe94
                 assert(data);                                                  \
Zbigniew Jędrzejewski-Szmek 62fe94
                                                                                \
Zbigniew Jędrzejewski-Szmek 62fe94
                 xs = new0(type, 1);                                            \
Zbigniew Jędrzejewski-Szmek 62fe94
+                if(!xs)                                                        \
Zbigniew Jędrzejewski-Szmek 62fe94
+                        return -ENOMEM;                                        \
Zbigniew Jędrzejewski-Szmek 62fe94
+                                                                               \
Zbigniew Jędrzejewski-Szmek 62fe94
                 *xs = invalid;                                                 \
Zbigniew Jędrzejewski-Szmek 62fe94
                                                                                \
Zbigniew Jędrzejewski-Szmek 62fe94
                 FOREACH_WORD(word, l, rvalue, state) {                         \
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -211,6 +214,7 @@ int log_syntax_internal(const char *unit, int level,
Zbigniew Jędrzejewski-Szmek 62fe94
                         xs = realloc(xs, (++i + 1) * sizeof(type));            \
Zbigniew Jędrzejewski-Szmek 62fe94
                         if (!xs)                                               \
Zbigniew Jędrzejewski-Szmek 62fe94
                                 return -ENOMEM;                                \
Zbigniew Jędrzejewski-Szmek 62fe94
+                                                                               \
Zbigniew Jędrzejewski-Szmek 62fe94
                         *(xs + i) = invalid;                                   \
Zbigniew Jędrzejewski-Szmek 62fe94
                 }                                                              \
Zbigniew Jędrzejewski-Szmek 62fe94
                                                                                \