i965: fix problem with constant out of bounds access (v3)
authorDave Airlie <airlied@gmail.com>
Thu, 30 May 2013 10:21:56 +0000 (20:21 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 4 Jun 2013 03:50:20 +0000 (13:50 +1000)
commit0677ea063cd96adefe87c1fb01ef7c66d905535b
treefc615d0b2703a20f8cc1a124632e06c8eb0e7e5e
parentbb525f1f1154f8ffde0e4199909466acbbb3876c
i965: fix problem with constant out of bounds access (v3)

Okay I now understand why Frank would want to run away, this is
my attempt at fixing the CVE out of bounds access to constants
outside the range. This attempt converts any illegal constants
to constant 0 as per the GL spec, and is undefined behaviour.

A future patch should add some debug for users to find this out,
but this needs to be backported to stable branches.

CVE-2013-1872

v2: drop the last hunk which was a separate fix (now in master).
hopefully fix the indentations.

v3: don't fail piglit, the whole 8/16 dispatch stuff was over
my head, and I spent a while figuring it out, but this one is
definitely safe, one piglit pass extra on my Ironlake.

NOTE: This is a candidate for stable branches.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp