diff options
-rw-r--r-- | libglusterfs/src/logging.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c index c5ffedbeb23..46b3ac5afc1 100644 --- a/libglusterfs/src/logging.c +++ b/libglusterfs/src/logging.c @@ -494,12 +494,12 @@ log: basename, line, function, domain); if (-1 == ret) { - goto out; + goto unlock; } ret = vasprintf (&str2, fmt, ap); if (-1 == ret) { - goto out; + goto unlock; } va_end (ap); @@ -513,9 +513,10 @@ log: fprintf (logfile, "%s\n", msg); fflush (logfile); } +unlock: pthread_mutex_unlock (&logfile_mutex); - if (__central_log_enabled && + if ((ret != -1) && __central_log_enabled && ((glusterfs_central_log_flag_get ()) == 0)) { glusterfs_central_log_flag_set (); @@ -524,11 +525,15 @@ log: } glusterfs_central_log_flag_unset (); } - - FREE (msg); - FREE (str1); - FREE (str2); + if (msg) + FREE (msg); + + if (str1) + FREE (str1); + + if (str2) + FREE (str2); out: return (0); |