Outputs[] array wasn't large enough, define MAX_PROGRAM_OUTPUTS, new assertions.
diff --git a/src/mesa/shader/prog_execute.c b/src/mesa/shader/prog_execute.c
index 6417a88..063d572 100644
--- a/src/mesa/shader/prog_execute.c
+++ b/src/mesa/shader/prog_execute.c
@@ -153,8 +153,7 @@
       }
 
    case PROGRAM_OUTPUT:
-      /* This is only for PRINT */
-      ASSERT(source->Index < FRAG_RESULT_MAX);
+      ASSERT(source->Index < MAX_PROGRAM_OUTPUTS);
       return machine->Outputs[source->Index];
 
    case PROGRAM_LOCAL_PARAM:
@@ -453,9 +452,11 @@
 
    switch (dest->File) {
    case PROGRAM_OUTPUT:
+      ASSERT(dest->Index < MAX_PROGRAM_OUTPUTS);
       dstReg = machine->Outputs[dest->Index];
       break;
    case PROGRAM_TEMPORARY:
+      ASSERT(dest->Index < MAX_PROGRAM_TEMPS);
       dstReg = machine->Temporaries[dest->Index];
       break;
    case PROGRAM_WRITE_ONLY: