diff options
author | Dmitry Podgorny <pasis.ua@gmail.com> | 2014-01-03 20:43:07 +0200 |
---|---|---|
committer | Dmitry Podgorny <pasis.ua@gmail.com> | 2014-01-03 20:43:07 +0200 |
commit | 2fc588be178b0dbc033f99671cee26842f59553d (patch) | |
tree | de89f94cd29a3a6fb96d452ff380d8ce84c45e7f /src | |
parent | cd4f4d0b1a29c642384ff6d6fff7bdf3573fa04e (diff) | |
download | profani-tty-2fc588be178b0dbc033f99671cee26842f59553d.tar.gz |
fixed segfault when home directory doesn't exist
Diffstat (limited to 'src')
-rw-r--r-- | src/log.c | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/src/log.c b/src/log.c index 4442dcfd..b82905cf 100644 --- a/src/log.c +++ b/src/log.c @@ -131,13 +131,15 @@ void log_close(void) { g_time_zone_unref(tz); - fclose(logp); + if (logp != NULL) { + fclose(logp); + } } void log_msg(log_level_t level, const char * const area, const char * const msg) { - if (level >= level_filter) { + if (level >= level_filter && logp != NULL) { long result; dt = g_date_time_new_now(tz); @@ -238,25 +240,26 @@ chat_log_chat(const gchar * const login, gchar *other, date_fmt = g_date_time_format(dt, "%H:%M:%S"); FILE *logp = fopen(dated_log->filename, "a"); - - if (direction == PROF_IN_LOG) { - if (strncmp(msg, "/me ", 4) == 0) { - fprintf(logp, "%s - *%s %s\n", date_fmt, other, msg + 4); + if (logp != NULL) { + if (direction == PROF_IN_LOG) { + if (strncmp(msg, "/me ", 4) == 0) { + fprintf(logp, "%s - *%s %s\n", date_fmt, other, msg + 4); + } else { + fprintf(logp, "%s - %s: %s\n", date_fmt, other, msg); + } } else { - fprintf(logp, "%s - %s: %s\n", date_fmt, other, msg); + if (strncmp(msg, "/me ", 4) == 0) { + fprintf(logp, "%s - *me %s\n", date_fmt, msg + 4); + } else { + fprintf(logp, "%s - me: %s\n", date_fmt, msg); + } } - } else { - if (strncmp(msg, "/me ", 4) == 0) { - fprintf(logp, "%s - *me %s\n", date_fmt, msg + 4); - } else { - fprintf(logp, "%s - me: %s\n", date_fmt, msg); + fflush(logp); + int result = fclose(logp); + if (result == EOF) { + log_error("Error closing file %s, errno = %d", dated_log->filename, errno); } } - fflush(logp); - int result = fclose(logp); - if (result == EOF) { - log_error("Error closing file %s, errno = %d", dated_log->filename, errno); - } g_free(date_fmt); g_date_time_unref(dt); @@ -285,17 +288,18 @@ groupchat_log_chat(const gchar * const login, const gchar * const room, gchar *date_fmt = g_date_time_format(dt, "%H:%M:%S"); FILE *logp = fopen(dated_log->filename, "a"); + if (logp != NULL) { + if (strncmp(msg, "/me ", 4) == 0) { + fprintf(logp, "%s - *%s %s\n", date_fmt, nick, msg + 4); + } else { + fprintf(logp, "%s - %s: %s\n", date_fmt, nick, msg); + } - if (strncmp(msg, "/me ", 4) == 0) { - fprintf(logp, "%s - *%s %s\n", date_fmt, nick, msg + 4); - } else { - fprintf(logp, "%s - %s: %s\n", date_fmt, nick, msg); - } - - fflush(logp); - int result = fclose(logp); - if (result == EOF) { - log_error("Error closing file %s, errno = %d", dated_log->filename, errno); + fflush(logp); + int result = fclose(logp); + if (result == EOF) { + log_error("Error closing file %s, errno = %d", dated_log->filename, errno); + } } g_free(date_fmt); |