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);
}
}