summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2012-05-17 20:37:20 +0300
committerYonit Halperin <yhalperi@redhat.com>2012-05-21 08:58:38 +0300
commit720d316153d1160ba6114950b0e7f55c86b0ac1c (patch)
tree843dc39750ab51af71c4bfeb1b9c5c7ad34fdf78
parentdd0d4959bb14c377c99c092de24ec3a26de8ec7d (diff)
server/video: do not allow non-streamable drawables be stream candidates
Resolves: rhbz#820669 Fix a segfault caused by a call to __red_is_next_stream_frame made by red_stream_maintenance, with a drawable that is not a DRAW_COPY one. The segfault is a reault of __red_is_next_stream_frame accessing red_drawable->u.copy.src_bitmap for a non DRAW_COPY drawable.
-rw-r--r--server/red_worker.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index dd00bff..3a0bdf4 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -2916,6 +2916,10 @@ static inline int __red_is_next_stream_frame(RedWorker *worker,
RedDrawable *red_drawable;
int is_frame_container = FALSE;
+ if (!candidate->streamable) {
+ return STREAM_FRAME_NONE;
+ }
+
if (candidate->creation_time - other_time >
(stream ? RED_STREAM_CONTINUS_MAX_DELTA : RED_STREAM_DETACTION_MAX_DELTA)) {
return STREAM_FRAME_NONE;