Fix unsafe usage of the logging functions.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4905 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/CConnection.cxx b/common/rfb/CConnection.cxx
index f2f19ca..e73b02e 100644
--- a/common/rfb/CConnection.cxx
+++ b/common/rfb/CConnection.cxx
@@ -100,7 +100,7 @@
     char msg[256];
     sprintf(msg,"Server gave unsupported RFB protocol version %d.%d",
             cp.majorVersion, cp.minorVersion);
-    vlog.error(msg);
+    vlog.error("%s", msg);
     state_ = RFBSTATE_INVALID;
     throw Exception(msg);
   } else if (useProtocol3_3 || cp.beforeVersion(3,7)) {
diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx
index 3421de5..6b6b017 100644
--- a/common/rfb/CSecurityTLS.cxx
+++ b/common/rfb/CSecurityTLS.cxx
@@ -72,7 +72,7 @@
 
 static void debug_log(int level, const char* str)
 {
-  vlog_raw.debug(str);
+  vlog_raw.debug("[%d]: %s", level, str);
 }
 
 void CSecurityTLS::initGlobal()
diff --git a/common/rfb/SConnection.cxx b/common/rfb/SConnection.cxx
index 941d30a..ee57336 100644
--- a/common/rfb/SConnection.cxx
+++ b/common/rfb/SConnection.cxx
@@ -239,7 +239,7 @@
 
 void SConnection::throwConnFailedException(const char* msg)
 {
-  vlog.info(msg);
+  vlog.info("%s", msg);
   if (state_ == RFBSTATE_PROTOCOL_VERSION) {
     if (cp.majorVersion == 3 && cp.minorVersion == 3) {
       os->writeU32(0);
diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx
index 2ea84e0..9a34f3a 100644
--- a/common/rfb/SSecurityTLS.cxx
+++ b/common/rfb/SSecurityTLS.cxx
@@ -49,7 +49,7 @@
 
 static void debug_log(int level, const char* str)
 {
-  vlog.debug(str);
+  vlog.debug("[%d]: %s", level, str);
 }
 
 void SSecurityTLS::initGlobal()
diff --git a/unix/vncconfig/vncconfig.cxx b/unix/vncconfig/vncconfig.cxx
index c901d19..f70cc71 100644
--- a/unix/vncconfig/vncconfig.cxx
+++ b/unix/vncconfig/vncconfig.cxx
@@ -431,7 +431,7 @@
     XCloseDisplay(dpy);
 
   } catch (rdr::Exception &e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
   }
 
   return 0;
diff --git a/unix/x0vncserver/x0vncserver.cxx b/unix/x0vncserver/x0vncserver.cxx
index 64fbe68..b5498e1 100644
--- a/unix/x0vncserver/x0vncserver.cxx
+++ b/unix/x0vncserver/x0vncserver.cxx
@@ -546,7 +546,7 @@
     }
 
   } catch (rdr::Exception &e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
     return 1;
   }
 
diff --git a/vncviewer/CConn.cxx b/vncviewer/CConn.cxx
index 12ebbe4..405cd97 100644
--- a/vncviewer/CConn.cxx
+++ b/vncviewer/CConn.cxx
@@ -99,7 +99,7 @@
     sock = new network::TcpSocket(serverHost, serverPort);
     vlog.info(_("connected to host %s port %d"), serverHost, serverPort);
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
     fl_alert("%s", e.str());
     exit_vncviewer();
     return;
@@ -210,10 +210,10 @@
       cc->processMsg();
     } while (cc->sock->inStream().checkNoWait(1));
   } catch (rdr::EndOfStream& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
     exit_vncviewer();
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
     exit_vncviewer(e.str());
   }
 
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index 1588f27..65dcfb2 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -369,7 +369,7 @@
     try {
       cc->writer()->clientCutText(buffer, ret);
     } catch (rdr::Exception& e) {
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
       exit_vncviewer(e.str());
     }
 
@@ -501,7 +501,7 @@
       try {
         cc->writer()->pointerEvent(pos, buttonMask);
       } catch (rdr::Exception& e) {
-        vlog.error(e.str());
+        vlog.error("%s", e.str());
         exit_vncviewer(e.str());
       }
     } else {
@@ -524,7 +524,7 @@
   try {
     self->cc->writer()->pointerEvent(self->lastPointerPos, self->lastButtonMask);
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
     exit_vncviewer(e.str());
   }
 }
@@ -756,7 +756,7 @@
     try {
       cc->writer()->keyEvent(iter->second, false);
     } catch (rdr::Exception& e) {
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
       exit_vncviewer(e.str());
     }
 
@@ -800,7 +800,7 @@
       if (downKeySym.find(FL_Alt_R) != downKeySym.end())
         cc->writer()->keyEvent(XK_Alt_R, false);
     } catch (rdr::Exception& e) {
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
       exit_vncviewer(e.str());
     }
   }
@@ -814,7 +814,7 @@
   try {
     cc->writer()->keyEvent(keySym, down);
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
     exit_vncviewer(e.str());
   }
 
diff --git a/win/rfb_win32/CleanDesktop.cxx b/win/rfb_win32/CleanDesktop.cxx
index 43252f1..52dc6bd 100644
--- a/win/rfb_win32/CleanDesktop.cxx
+++ b/win/rfb_win32/CleanDesktop.cxx
@@ -178,7 +178,7 @@
       if (ad.enable(false))
         restoreActiveDesktop = true;
     } catch (rdr::Exception& e) {
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
     }
 
     // -=- Switch of normal wallpaper and notify apps
@@ -186,7 +186,7 @@
     restoreWallpaper = true;
 
   } catch (rdr::Exception& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
   }
 }
 
@@ -203,7 +203,7 @@
         ad.enable(true);
         restoreActiveDesktop = false;
       } catch (rdr::Exception& e) {
-        vlog.error(e.str());
+        vlog.error("%s", e.str());
       }
     }
 
@@ -216,7 +216,7 @@
     }
 
   } catch (rdr::Exception& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
   }
 }
 
@@ -230,7 +230,7 @@
     restorePattern = true;
 
   } catch (rdr::Exception& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
   }
 }
 
@@ -252,7 +252,7 @@
     }
 
   } catch (rdr::Exception& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
   }
 }
 
@@ -288,7 +288,7 @@
     restoreEffects = true;
 
   } catch (rdr::Exception& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
   }
 }
 
@@ -317,6 +317,6 @@
     }
 
   } catch (rdr::Exception& e) {
-    vlog.info(e.str());
+    vlog.info("%s", e.str());
   }
 }
diff --git a/win/rfb_win32/Clipboard.cxx b/win/rfb_win32/Clipboard.cxx
index a4c43f0..482519e 100644
--- a/win/rfb_win32/Clipboard.cxx
+++ b/win/rfb_win32/Clipboard.cxx
@@ -185,7 +185,7 @@
 
     vlog.debug("set clipboard");
   } catch (rdr::Exception& e) {
-    vlog.debug(e.str());
+    vlog.debug("%s", e.str());
   }
 
   // - Close the clipboard
diff --git a/win/rfb_win32/DeviceFrameBuffer.cxx b/win/rfb_win32/DeviceFrameBuffer.cxx
index 921e1fa..cc9bbca 100644
--- a/win/rfb_win32/DeviceFrameBuffer.cxx
+++ b/win/rfb_win32/DeviceFrameBuffer.cxx
@@ -276,7 +276,7 @@
     server->setCursor(cursor.width(), cursor.height(), cursor.hotspot,
                       cursorBm.data, cursor.mask.buf);
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
   }
 }
 
diff --git a/win/rfb_win32/MonitorInfo.cxx b/win/rfb_win32/MonitorInfo.cxx
index 0a5e34f..c57cd26 100644
--- a/win/rfb_win32/MonitorInfo.cxx
+++ b/win/rfb_win32/MonitorInfo.cxx
@@ -80,7 +80,7 @@
       return;
     }
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
   }
 #endif
 
@@ -106,7 +106,7 @@
       return;
     }
   } catch (rdr::Exception& e) {
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
   }
 #endif
 
diff --git a/win/rfb_win32/RegConfig.cxx b/win/rfb_win32/RegConfig.cxx
index 90980c3..30cb310 100644
--- a/win/rfb_win32/RegConfig.cxx
+++ b/win/rfb_win32/RegConfig.cxx
@@ -48,7 +48,7 @@
     processEvent(event);
     return true;
   } catch (rdr::Exception& e) {
-    vlog.debug(e.str());
+    vlog.debug("%s", e.str());
     return false;
   }
 }
@@ -65,7 +65,7 @@
     }
   } catch (rdr::SystemException& e) {
     if (e.err != 6)
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
   }
 }
 
diff --git a/win/rfb_win32/SDisplay.cxx b/win/rfb_win32/SDisplay.cxx
index 583b4ab..6d0c924 100644
--- a/win/rfb_win32/SDisplay.cxx
+++ b/win/rfb_win32/SDisplay.cxx
@@ -185,7 +185,7 @@
       if (tryMethod == 0)
         throw rdr::Exception("unable to access desktop");
       tryMethod--;
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
     }
   }
   vlog.info("Started %s", core->methodName());
@@ -388,7 +388,7 @@
       try {
         core->flushUpdates();
       } catch (rdr::Exception& e) {
-        vlog.error(e.str());
+        vlog.error("%s", e.str());
         restartCore();
         return;
       }
diff --git a/win/rfb_win32/SocketManager.cxx b/win/rfb_win32/SocketManager.cxx
index 9a0dab4..d4f1965 100644
--- a/win/rfb_win32/SocketManager.cxx
+++ b/win/rfb_win32/SocketManager.cxx
@@ -43,7 +43,7 @@
   if (WSAIoctl(sock_->getFd(), SIO_ADDRESS_LIST_CHANGE, 0, 0, 0, 0, &dummy, 0, 0) == SOCKET_ERROR) {
     DWORD err = WSAGetLastError();
     if (err != WSAEWOULDBLOCK)
-      vlog.error("Unable to track address changes", err);
+      vlog.error("Unable to track address changes: 0x%08x", (unsigned)err);
   }
 }
 
@@ -70,7 +70,7 @@
     if (event)
       WSACloseEvent(event);
     delete sock_;
-    vlog.error(e.str());
+    vlog.error("%s", e.str());
     throw;
   }
 
@@ -204,7 +204,7 @@
       if (WSAEventSelect(ci.sock->getFd(), event, FD_READ | FD_CLOSE) == SOCKET_ERROR)
         throw rdr::SystemException("unable to re-enable WSAEventSelect:%u", WSAGetLastError());
     } catch (rdr::Exception& e) {
-      vlog.error(e.str());
+      vlog.error("%s", e.str());
       remSocket(ci.sock);
     }
   }