]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/logger.cpp
Stop a potential null pointer dereference introduced by Namegduf's patch, found by...
[user/henk/code/inspircd.git] / src / logger.cpp
index d8c1a3b0bbe470905757728983ab429f6e4d0f23..049b4b5e7aa0883ca48fa77af7f4f3afdba443b1 100644 (file)
@@ -3,7 +3,7 @@
  *       +------------------------------------+
  *
  *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
+ * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
@@ -341,13 +341,15 @@ void FileWriter::HandleEvent(EventType ev, int)
 
 void FileWriter::WriteLogLine(const std::string &line)
 {
-       if (log)
+       if (log == NULL)
+               return;
+// XXX: For now, just return. Don't throw an exception. It'd be nice to find out if this is happening, but I'm terrified of breaking so close to final release. -- w00t
+//             throw CoreException("FileWriter::WriteLogLine called with a closed logfile");
+
+       fprintf(log,"%s",line.c_str());
+       if (writeops++ % 20)
        {
-               fprintf(log,"%s",line.c_str());
-               if (writeops++ % 20)
-               {
-                       fflush(log);
-               }
+               fflush(log);
        }
 }
 
@@ -357,9 +359,11 @@ void FileWriter::Close()
        {
                fflush(log);
                fclose(log);
+               log = NULL;
        }
 }
 
 FileWriter::~FileWriter()
 {
+       this->Close();
 }