author | Niveditha Rau <Niveditha.Rau@Oracle.COM> |
Fri, 24 Apr 2015 08:05:44 -0700 | |
changeset 1458 | 34b08166bf33 |
permissions | -rw-r--r-- |
1458
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
1 |
--- a/unix/x0vncserver/Image.cxx Wed Oct 22 10:30:27 2014 |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
2 |
+++ b/unix/x0vncserver/Image.cxx Wed Oct 22 10:46:12 2014 |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
3 |
@@ -79,6 +79,13 @@ |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
4 |
|
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
5 |
xim = XCreateImage(dpy, vis, DefaultDepth(dpy, DefaultScreen(dpy)), |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
6 |
ZPixmap, 0, 0, width, height, BitmapPad(dpy), 0); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
7 |
+ if (xim->bytes_per_line <= 0 || |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
8 |
+ xim->height <= 0 || |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
9 |
+ xim->height >= INT_MAX / xim->bytes_per_line) { |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
10 |
+ vlog.error("Invalid display size"); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
11 |
+ XDestroyImage(xim); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
12 |
+ exit(1); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
13 |
+ } |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
14 |
|
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
15 |
xim->data = (char *)malloc(xim->bytes_per_line * xim->height); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
16 |
if (xim->data == NULL) { |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
17 |
@@ -256,6 +263,17 @@ |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
18 |
return; |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
19 |
} |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
20 |
|
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
21 |
+ if (xim->bytes_per_line <= 0 || |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
22 |
+ xim->height <= 0 || |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
23 |
+ xim->height >= INT_MAX / xim->bytes_per_line) { |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
24 |
+ vlog.error("Invalid display size"); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
25 |
+ XDestroyImage(xim); |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
26 |
+ xim = NULL; |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
27 |
+ delete shminfo; |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
28 |
+ shminfo = NULL; |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
29 |
+ return; |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
30 |
+ } |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
31 |
+ |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
32 |
shminfo->shmid = shmget(IPC_PRIVATE, |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
33 |
xim->bytes_per_line * xim->height, |
34b08166bf33
19811326 problem in X11/VNC
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents:
diff
changeset
|
34 |
IPC_CREAT|0777); |