Re: [Qemu-devel] [PATCH v2 2/5] vmware-vga: add vmsvga_verify_rect

2014-10-16 Thread Don Koch
On Wed, 15 Oct 2014 12:10:36 +0200
Gerd Hoffmann kra...@redhat.com wrote:

 Add verification function for rectangles, returning
 true if verification passes and false otherwise.
 
 Cc: qemu-sta...@nongnu.org
 Signed-off-by: Gerd Hoffmann kra...@redhat.com

Reviewed-by: Don Koch dk...@verizon.com
 ---
  hw/display/vmware_vga.c | 53 
 -
  1 file changed, 52 insertions(+), 1 deletion(-)
 
 diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
 index ec63290..ba73a1c 100644
 --- a/hw/display/vmware_vga.c
 +++ b/hw/display/vmware_vga.c
 @@ -294,8 +294,59 @@ enum {
  SVGA_CURSOR_ON_RESTORE_TO_FB = 3,
  };
  
 +static inline bool vmsvga_verify_rect(DisplaySurface *surface,
 +  const char *name,
 +  int x, int y, int w, int h)
 +{
 +if (x  0) {
 +fprintf(stderr, %s: x was  0 (%d)\n, name, x);
 +return false;
 +}
 +if (x  SVGA_MAX_WIDTH) {
 +fprintf(stderr, %s: x was  %d (%d)\n, name, SVGA_MAX_WIDTH, x);
 +return false;
 +}
 +if (w  0) {
 +fprintf(stderr, %s: w was  0 (%d)\n, name, w);
 +return false;
 +}
 +if (w  SVGA_MAX_WIDTH) {
 +fprintf(stderr, %s: w was  %d (%d)\n, name, SVGA_MAX_WIDTH, w);
 +return false;
 +}
 +if (x + w  surface_width(surface)) {
 +fprintf(stderr, %s: width was  %d (x: %d, w: %d)\n,
 +name, surface_width(surface), x, w);
 +return false;
 +}
 +
 +if (y  0) {
 +fprintf(stderr, %s: y was  0 (%d)\n, name, y);
 +return false;
 +}
 +if (y  SVGA_MAX_HEIGHT) {
 +fprintf(stderr, %s: y was  %d (%d)\n, name, SVGA_MAX_HEIGHT, y);
 +return false;
 +}
 +if (h  0) {
 +fprintf(stderr, %s: h was  0 (%d)\n, name, h);
 +return false;
 +}
 +if (h  SVGA_MAX_HEIGHT) {
 +fprintf(stderr, %s: h was  %d (%d)\n, name, SVGA_MAX_HEIGHT, h);
 +return false;
 +}
 +if (y + h  surface_height(surface)) {
 +fprintf(stderr, %s: update height  %d (y: %d, h: %d)\n,
 +name, surface_height(surface), y, h);
 +return false;
 +}
 +
 +return true;
 +}
 +
  static inline void vmsvga_update_rect(struct vmsvga_state_s *s,
 -int x, int y, int w, int h)
 +  int x, int y, int w, int h)
  {
  DisplaySurface *surface = qemu_console_surface(s-vga.con);
  int line;
 -- 
 1.8.3.1
 
 



[Qemu-devel] [PATCH v2 2/5] vmware-vga: add vmsvga_verify_rect

2014-10-15 Thread Gerd Hoffmann
Add verification function for rectangles, returning
true if verification passes and false otherwise.

Cc: qemu-sta...@nongnu.org
Signed-off-by: Gerd Hoffmann kra...@redhat.com
---
 hw/display/vmware_vga.c | 53 -
 1 file changed, 52 insertions(+), 1 deletion(-)

diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index ec63290..ba73a1c 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -294,8 +294,59 @@ enum {
 SVGA_CURSOR_ON_RESTORE_TO_FB = 3,
 };
 
+static inline bool vmsvga_verify_rect(DisplaySurface *surface,
+  const char *name,
+  int x, int y, int w, int h)
+{
+if (x  0) {
+fprintf(stderr, %s: x was  0 (%d)\n, name, x);
+return false;
+}
+if (x  SVGA_MAX_WIDTH) {
+fprintf(stderr, %s: x was  %d (%d)\n, name, SVGA_MAX_WIDTH, x);
+return false;
+}
+if (w  0) {
+fprintf(stderr, %s: w was  0 (%d)\n, name, w);
+return false;
+}
+if (w  SVGA_MAX_WIDTH) {
+fprintf(stderr, %s: w was  %d (%d)\n, name, SVGA_MAX_WIDTH, w);
+return false;
+}
+if (x + w  surface_width(surface)) {
+fprintf(stderr, %s: width was  %d (x: %d, w: %d)\n,
+name, surface_width(surface), x, w);
+return false;
+}
+
+if (y  0) {
+fprintf(stderr, %s: y was  0 (%d)\n, name, y);
+return false;
+}
+if (y  SVGA_MAX_HEIGHT) {
+fprintf(stderr, %s: y was  %d (%d)\n, name, SVGA_MAX_HEIGHT, y);
+return false;
+}
+if (h  0) {
+fprintf(stderr, %s: h was  0 (%d)\n, name, h);
+return false;
+}
+if (h  SVGA_MAX_HEIGHT) {
+fprintf(stderr, %s: h was  %d (%d)\n, name, SVGA_MAX_HEIGHT, h);
+return false;
+}
+if (y + h  surface_height(surface)) {
+fprintf(stderr, %s: update height  %d (y: %d, h: %d)\n,
+name, surface_height(surface), y, h);
+return false;
+}
+
+return true;
+}
+
 static inline void vmsvga_update_rect(struct vmsvga_state_s *s,
-int x, int y, int w, int h)
+  int x, int y, int w, int h)
 {
 DisplaySurface *surface = qemu_console_surface(s-vga.con);
 int line;
-- 
1.8.3.1