From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 18 Jul 2018 15:21:42 +0300 From: Vladimir Davydov Subject: Re: [tarantool-patches] [PATCH 2/2] Added strdup fail checks in say Message-ID: <20180718122142.o6wngqqzeirb4ezo@esperanza> References: <20180717151521.34679-1-arkholga@tarantool.org> <20180717151521.34679-3-arkholga@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180717151521.34679-3-arkholga@tarantool.org> To: Olga Arkhangelskaia Cc: tarantool-patches@freelists.org List-ID: On Tue, Jul 17, 2018 at 06:15:21PM +0300, Olga Arkhangelskaia wrote: > 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; > + } > + } You can avoid code duplication by checking syslog_ident once after if-else block: if (opts.identity == NULL) log->syslog_ident = ... else log->syslog_ident = ... if (log->syslog_ident) { diag_set(...) reutrn -1; }