diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2013-10-08 12:43:04 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2013-10-08 12:43:04 +0200 |
commit | 7a6832497e8bd207424295242eda0ad70b854093 (patch) | |
tree | 6f01dbfcd0c1241562d32dd7659de964524ba89e | |
parent | 349ecb6b9d0acd759308f369400c5976d33705c7 (diff) |
driver: fix potential segfault in etna_fetch_uniforms
-rw-r--r-- | src/driver/etna_shader.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/driver/etna_shader.c b/src/driver/etna_shader.c index eae05be..ddff265 100644 --- a/src/driver/etna_shader.c +++ b/src/driver/etna_shader.c @@ -43,7 +43,7 @@ static void etna_fetch_uniforms(struct pipe_context *pipe, uint shader) { case PIPE_SHADER_VERTEX: buf = &priv->vs_cbuf_s; - if(buf->user_buffer) + if(buf->user_buffer && priv->vs) { memcpy(priv->shader_state.VS_UNIFORMS, buf->user_buffer, MIN2(buf->buffer_size, priv->vs->const_size * 4)); priv->dirty_bits |= ETNA_STATE_VS_UNIFORMS; @@ -51,7 +51,7 @@ static void etna_fetch_uniforms(struct pipe_context *pipe, uint shader) break; case PIPE_SHADER_FRAGMENT: buf = &priv->fs_cbuf_s; - if(buf->user_buffer) + if(buf->user_buffer && priv->fs) { memcpy(priv->shader_state.PS_UNIFORMS, buf->user_buffer, MIN2(buf->buffer_size, priv->fs->const_size * 4)); priv->dirty_bits |= ETNA_STATE_PS_UNIFORMS; @@ -232,7 +232,6 @@ static void etna_set_constant_buffer(struct pipe_context *pipe, } } else { assert(buf->buffer == NULL && buf->user_buffer != NULL); - assert(priv->vs && priv->fs); /* support only user buffer for now */ if(likely(index == 0)) { |