[Bugfix] Use rdr::U32 type for length of strings handled by *CutText functions.
This avoids big buffer overflow when memcpy is called with "-1" argument.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3607 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/win/vncviewer/CConn.cxx b/win/vncviewer/CConn.cxx
index d269748..81df866 100644
--- a/win/vncviewer/CConn.cxx
+++ b/win/vncviewer/CConn.cxx
@@ -698,7 +698,7 @@
}
void
-CConn::serverCutText(const char* str, int len) {
+CConn::serverCutText(const char* str, rdr::U32 len) {
if (!options.serverCutText) return;
window->serverCutText(str, len);
}
diff --git a/win/vncviewer/CConn.h b/win/vncviewer/CConn.h
index 29023f3..d294f9e 100644
--- a/win/vncviewer/CConn.h
+++ b/win/vncviewer/CConn.h
@@ -105,7 +105,7 @@
void setCursor(int w, int h, const Point& hotspot, void* data, void* mask);
void setName(const char* name);
void serverInit();
- void serverCutText(const char* str, int len);
+ void serverCutText(const char* str, rdr::U32 len);
void beginRect(const Rect& r, unsigned int encoding);
void endRect(const Rect& r, unsigned int encoding);
void fillRect(const Rect& r, Pixel pix);
diff --git a/win/vncviewer/DesktopWindow.cxx b/win/vncviewer/DesktopWindow.cxx
index eac2b6f..5a9fe4e 100644
--- a/win/vncviewer/DesktopWindow.cxx
+++ b/win/vncviewer/DesktopWindow.cxx
@@ -1275,7 +1275,7 @@
void
-DesktopWindow::serverCutText(const char* str, int len) {
+DesktopWindow::serverCutText(const char* str, rdr::U32 len) {
CharArray t(len+1);
memcpy(t.buf, str, len);
t.buf[len] = 0;
diff --git a/win/vncviewer/DesktopWindow.h b/win/vncviewer/DesktopWindow.h
index 4319b75..259b6b0 100644
--- a/win/vncviewer/DesktopWindow.h
+++ b/win/vncviewer/DesktopWindow.h
@@ -117,7 +117,7 @@
char* getMonitor() const;
// - Set the local clipboard
- void serverCutText(const char* str, int len);
+ void serverCutText(const char* str, rdr::U32 len);
// - Draw into the desktop buffer & update the window
void fillRect(const Rect& r, Pixel pix);