yagl_gles3_program: Replace strcpy with strncpy for safety 34/265434/3
authorLukasz Kostyra <l.kostyra@samsung.com>
Tue, 19 Oct 2021 09:17:03 +0000 (11:17 +0200)
committerLukasz Kostyra <l.kostyra@samsung.com>
Wed, 20 Oct 2021 08:21:36 +0000 (10:21 +0200)
Fixes defect WGID 443657

Change-Id: I0c57b2b7f23175e218d17dce6320af51550f238b

GLESv2/yagl_gles3_program.c

index 867cee89c344233652fcaf09cdeee4dc2b3edf3f..a304bda7f69c2b8d00812b3f28b51cba6ae67f18 100644 (file)
@@ -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;
     }