diff --git a/src/say.c b/src/say.c index 4df2116c1e8189e57bc82df04c70911888cf10b3..063e0295cf3fc31e2ad7fa97b0d140ed13618aad 100644 --- a/src/say.c +++ b/src/say.c @@ -502,6 +502,11 @@ log_syslog_init(struct log *log, const char *init_str) log->syslog_ident = strdup("tarantool"); 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; diff --git a/src/say.h b/src/say.h index f324c279ef48926451e656938d7266d97e6a2877..708637c414d710fef6673b2f74c44e07800ba8d2 100644 --- a/src/say.h +++ b/src/say.h @@ -261,26 +261,28 @@ CFORMAT(printf, 5, 0) extern sayfunc_t _say; * \param level (int) - log level (see enum \link say_level \endlink) * \param file (const char * ) - file name to print * \param line (int) - line number to print + * \param error (const char * ) - error description, may be NULL * \param format (const char * ) - printf()-like format string * \param ... - format arguments * \sa printf() * \sa enum say_level */ -#define say_file_line(level, file, line, format, ...) ({ \ +#define say_file_line(level, file, line, error, format, ...) ({ \ if (say_log_level_is_enabled(level)) \ - _say(level, file, line, format, ##__VA_ARGS__); }) + _say(level, file, line, error, format, ##__VA_ARGS__); }) /** * Format and print a message to Tarantool log file. * * \param level (int) - log level (see enum \link say_level \endlink) + * \param error (const char * ) - error description, may be NULL * \param format (const char * ) - printf()-like format string * \param ... - format arguments * \sa printf() * \sa enum say_level */ -#define say(level, format, ...) ({ \ - say_file_line(level, __FILE__, __LINE__, format, ##__VA_ARGS__); }) +#define say(level, error, format, ...) ({ \ + say_file_line(level, __FILE__, __LINE__, error, format, ##__VA_ARGS__); }) /** * Format and print a message to Tarantool log file.