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

  • From: Olga Arkhangelskaia <arkholga@xxxxxxxxxxxxx>
  • To: tarantool-patches@xxxxxxxxxxxxx
  • Date: Tue, 17 Jul 2018 18:15:21 +0300

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)


Other related posts: