Mesa (master): radeonsi: fix undefined behavior ( memcpy arguments must be non-NULL)

Nicolai Hähnle nh at kemper.freedesktop.org
Sat May 7 21:50:57 UTC 2016


Module: Mesa
Branch: master
Commit: b9e6e8e7d4ed9f9330aabc73e0644fe50460cf9e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b9e6e8e7d4ed9f9330aabc73e0644fe50460cf9e

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Fri Apr 29 23:41:59 2016 -0500

radeonsi: fix undefined behavior (memcpy arguments must be non-NULL)

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_state_shaders.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 52b9851..0bfd7e8 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;
 }




More information about the mesa-commit mailing list