Blame SOURCES/tigervnc-add-write-protection-to-offsetpixelbuffer.patch

aeab07
From 9f615301aba1cc54a749950bf9462c5a85217bc4 Mon Sep 17 00:00:00 2001
aeab07
From: Pierre Ossman <ossman@cendio.se>
aeab07
Date: Tue, 10 Sep 2019 15:25:30 +0200
aeab07
Subject: [PATCH] Add write protection to OffsetPixelBuffer
aeab07
aeab07
No one should every try to write to this buffer. Enforce that by
aeab07
throwing an exception if any one tries to get a writeable pointer
aeab07
to the data.
aeab07
---
aeab07
 common/rfb/EncodeManager.cxx | 6 ++++++
aeab07
 common/rfb/EncodeManager.h   | 3 +++
aeab07
 2 files changed, 9 insertions(+)
aeab07
aeab07
diff --git a/common/rfb/EncodeManager.cxx b/common/rfb/EncodeManager.cxx
aeab07
index 1653cea..66ba432 100644
aeab07
--- a/common/rfb/EncodeManager.cxx
aeab07
+++ b/common/rfb/EncodeManager.cxx
aeab07
@@ -24,6 +24,7 @@
aeab07
 #include <rfb/SMsgWriter.h>
aeab07
 #include <rfb/UpdateTracker.h>
aeab07
 #include <rfb/LogWriter.h>
aeab07
+#include <rfb/Exception.h>
aeab07
 
aeab07
 #include <rfb/RawEncoder.h>
aeab07
 #include <rfb/RREEncoder.h>
aeab07
@@ -895,6 +896,11 @@ void EncodeManager::OffsetPixelBuffer::update(const PixelFormat& pf,
aeab07
   setBuffer(width, height, (rdr::U8*)data_, stride_);
aeab07
 }
aeab07
 
aeab07
+rdr::U8* EncodeManager::OffsetPixelBuffer::getBufferRW(const Rect& r, int* stride)
aeab07
+{
aeab07
+  throw rfb::Exception("Invalid write attempt to OffsetPixelBuffer");
aeab07
+}
aeab07
+
aeab07
 // Preprocessor generated, optimised methods
aeab07
 
aeab07
 #define BPP 8
aeab07
diff --git a/common/rfb/EncodeManager.h b/common/rfb/EncodeManager.h
aeab07
index 79db950..7d47420 100644
aeab07
--- a/common/rfb/EncodeManager.h
aeab07
+++ b/common/rfb/EncodeManager.h
aeab07
@@ -124,6 +124,9 @@ namespace rfb {
aeab07
 
aeab07
       void update(const PixelFormat& pf, int width, int height,
aeab07
                   const rdr::U8* data_, int stride);
aeab07
+
aeab07
+    private:
aeab07
+      virtual rdr::U8* getBufferRW(const Rect& r, int* stride);
aeab07
     };
aeab07
 
aeab07
     OffsetPixelBuffer offsetPixelBuffer;