Keep default FBO attachments immutable.

In some cases we would let the user change the attachments of the
default FBO. This hole in our validation would confound the dEQP
negative API tests (negative_api.buffer.framebuffer_*) and muck
up the remainder of the test run.

BUG=angleproject:901

Change-Id: I2b3c04752d1df3289d41c013cc936eda30e98aad
Reviewed-on: https://chromium-review.googlesource.com/266927
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index 3008c05..4ddc9e4 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -386,11 +386,11 @@
     }
 
     gl::Framebuffer *framebuffer = context->getState().getTargetFramebuffer(target);
-    GLuint framebufferHandle = context->getState().getTargetFramebuffer(target)->id();
 
-    if (!framebuffer || (framebufferHandle == 0 && renderbuffer != 0))
+    ASSERT(framebuffer);
+    if (framebuffer->id() == 0)
     {
-        context->recordError(Error(GL_INVALID_OPERATION));
+        context->recordError(Error(GL_INVALID_OPERATION, "Cannot change default FBO's attachments"));
         return false;
     }
 
@@ -1735,11 +1735,11 @@
     }
 
     const gl::Framebuffer *framebuffer = context->getState().getTargetFramebuffer(target);
-    GLuint framebufferHandle = context->getState().getTargetFramebuffer(target)->id();
+    ASSERT(framebuffer);
 
-    if (framebufferHandle == 0 || !framebuffer)
+    if (framebuffer->id() == 0)
     {
-        context->recordError(Error(GL_INVALID_OPERATION));
+        context->recordError(Error(GL_INVALID_OPERATION, "Cannot change default FBO's attachments"));
         return false;
     }