summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolai Hähnle <nicolai.haehnle@amd.com>2016-04-29 23:41:59 -0500
committerNicolai Hähnle <nicolai.haehnle@amd.com>2016-04-30 02:01:42 -0500
commit33451b1c86202847cf9fdc95f21ecbfdebdd5426 (patch)
tree19763501061af9c5172175756be82b87c27e3be7
parentecda6187a479f5bb740b4c7f82f2a4a01db287bf (diff)
radeonsi: fix undefined behavior (memcpy arguments must be non-NULL)ubsan
-rw-r--r--src/gallium/drivers/radeonsi/si_state_shaders.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 52b9851e01..0bfd7e8d11 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -63,7 +63,9 @@ static void *si_get_tgsi_binary(struct si_shader_selector *sel)
/** Copy "data" to "ptr" and return the next dword following copied data. */
static uint32_t *write_data(uint32_t *ptr, const void *data, unsigned size)
{
- memcpy(ptr, data, size);
+ /* data may be NULL if size == 0 */
+ if (size)
+ memcpy(ptr, data, size);
ptr += DIV_ROUND_UP(size, 4);
return ptr;
}