summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Kostyra <l.kostyra@samsung.com>2021-10-19 11:17:03 +0200
committerLukasz Kostyra <l.kostyra@samsung.com>2021-10-20 10:21:36 +0200
commit547bdb963e23c9f4ea2ed90d9a7e8153254b9097 (patch)
tree3abbc3cf668a1d928bf92af82c08da04afde3fea
parentd1ff1f2fa6e0a7bd7c989d4061ad91a430ebe6ae (diff)
downloademulator-yagl-547bdb963e23c9f4ea2ed90d9a7e8153254b9097.tar.gz
emulator-yagl-547bdb963e23c9f4ea2ed90d9a7e8153254b9097.tar.bz2
emulator-yagl-547bdb963e23c9f4ea2ed90d9a7e8153254b9097.zip
yagl_gles3_program: Replace strcpy with strncpy for safety
Fixes defect WGID 443657 Change-Id: I0c57b2b7f23175e218d17dce6320af51550f238b
-rw-r--r--GLESv2/yagl_gles3_program.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/GLESv2/yagl_gles3_program.c b/GLESv2/yagl_gles3_program.c
index 867cee8..a304bda 100644
--- a/GLESv2/yagl_gles3_program.c
+++ b/GLESv2/yagl_gles3_program.c
@@ -316,7 +316,8 @@ void yagl_gles3_program_get_uniform_indices(struct yagl_gles2_program *program,
yagl_free(var->name);
var->name = yagl_malloc(var->name_size);
- strcpy(var->name, names[fetch_positions[i]]);
+ strncpy(var->name, names[fetch_positions[i]], var->name_size);
+ var->name[var->name_size] = 0;
var->name_fetched = 1;
}
@@ -357,11 +358,12 @@ GLuint yagl_gles3_program_get_uniform_block_index(struct yagl_gles2_program *pro
if ((i != GL_INVALID_INDEX) && (i < program->num_active_uniform_blocks)) {
block = &program->active_uniform_blocks[i];
- block->name_size = block_name_size;
+ block->name_size = block_name_size + 1;
yagl_free(block->name);
block->name = yagl_malloc(block_name_size);
- strcpy(block->name, block_name);
+ strncpy(block->name, block_name, block_name_size);
+ block->name[block_name_size] = 0;
block->name_fetched = 1;
}