[tarantool-patches] [PATCH 2/2] Added strdup fail checks in say

Olga Arkhangelskaia arkholga at tarantool.org
Tue Jul 17 18:15:21 MSK 2018


Strdup may silently fail without any message from tarantool.
Patch adds this checks.

v2:
there is no v1 for this changes
---
 src/say.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/say.c b/src/say.c
index 501095b3e..d824e778b 100644
--- a/src/say.c
+++ b/src/say.c
@@ -498,10 +498,21 @@ log_syslog_init(struct log *log, const char *init_str)
 	if (say_parse_syslog_opts(init_str, &opts) < 0)
 		return -1;
 
-	if (opts.identity == NULL)
+	if (opts.identity == NULL) {
 		log->syslog_ident = strdup("tarantool");
-	else
+		if (log->syslog_ident == NULL) {
+			diag_set(OutOfMemory, strlen("tarantool"), "malloc",
+				 "log->syslog_ident");
+			return -1;
+		}
+	} else {
 		log->syslog_ident = strdup(opts.identity);
+		if (log->syslog_ident == NULL) {
+			diag_set(OutOfMemory, strlen(opts.identity), "malloc",
+				 "log->syslog_ident");
+			return -1;
+		}
+	}
 
 	if (opts.facility == syslog_facility_MAX)
 		log->syslog_facility = SYSLOG_LOCAL7;
-- 
2.14.3 (Apple Git-98)





More information about the Tarantool-patches mailing list