Re: [Mesa-dev] [PATCH] i965: Initialize new chunks of realloc'd memory.
On Wednesday, July 09, 2014 12:41:25 PM Matt Turner wrote: Otherwise we'd compare uninitialized pointers with NULL and dereference, leading to crashes. --- src/mesa/drivers/dri/i965/intel_asm_annotation.c | 4 1 file changed, 4 insertions(+) diff --git a/src/mesa/drivers/dri/i965/intel_asm_annotation.c b/src/mesa/drivers/dri/i965/intel_asm_annotation.c index 4717baf..6a51d89 100644 --- a/src/mesa/drivers/dri/i965/intel_asm_annotation.c +++ b/src/mesa/drivers/dri/i965/intel_asm_annotation.c @@ -96,11 +96,15 @@ void annotate(struct brw_context *brw, struct backend_instruction *inst, unsigned offset) { if (annotation-ann_size = annotation-ann_count) { + int old_size = annotation-ann_size; annotation-ann_size = MAX2(1024, annotation-ann_size * 2); annotation-ann = reralloc(annotation-mem_ctx, annotation-ann, struct annotation, annotation-ann_size); if (!annotation-ann) return; + + memset(annotation-ann + old_size, 0, + (annotation-ann_size - old_size) * sizeof(struct annotation)); } struct annotation *ann = annotation-ann[annotation-ann_count++]; Reviewed-by: Kenneth Graunke kenn...@whitecape.org signature.asc Description: This is a digitally signed message part. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] i965: Initialize new chunks of realloc'd memory.
Otherwise we'd compare uninitialized pointers with NULL and dereference, leading to crashes. --- src/mesa/drivers/dri/i965/intel_asm_annotation.c | 4 1 file changed, 4 insertions(+) diff --git a/src/mesa/drivers/dri/i965/intel_asm_annotation.c b/src/mesa/drivers/dri/i965/intel_asm_annotation.c index 4717baf..6a51d89 100644 --- a/src/mesa/drivers/dri/i965/intel_asm_annotation.c +++ b/src/mesa/drivers/dri/i965/intel_asm_annotation.c @@ -96,11 +96,15 @@ void annotate(struct brw_context *brw, struct backend_instruction *inst, unsigned offset) { if (annotation-ann_size = annotation-ann_count) { + int old_size = annotation-ann_size; annotation-ann_size = MAX2(1024, annotation-ann_size * 2); annotation-ann = reralloc(annotation-mem_ctx, annotation-ann, struct annotation, annotation-ann_size); if (!annotation-ann) return; + + memset(annotation-ann + old_size, 0, + (annotation-ann_size - old_size) * sizeof(struct annotation)); } struct annotation *ann = annotation-ann[annotation-ann_count++]; -- 1.8.5.5 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] i965: Initialize new chunks of realloc'd memory.
Otherwise we'd compare uninitialized pointers with NULL and dereference, leading to crashes. --- src/mesa/drivers/dri/i965/intel_asm_annotation.c | 4 1 file changed, 4 insertions(+) diff --git a/src/mesa/drivers/dri/i965/intel_asm_annotation.c b/src/mesa/drivers/dri/i965/intel_asm_annotation.c index 4717baf..d524725 100644 --- a/src/mesa/drivers/dri/i965/intel_asm_annotation.c +++ b/src/mesa/drivers/dri/i965/intel_asm_annotation.c @@ -96,9 +96,13 @@ void annotate(struct brw_context *brw, struct backend_instruction *inst, unsigned offset) { if (annotation-ann_size = annotation-ann_count) { + int old_size = annotation-ann_size; annotation-ann_size = MAX2(1024, annotation-ann_size * 2); annotation-ann = reralloc(annotation-mem_ctx, annotation-ann, struct annotation, annotation-ann_size); + memset(annotation-ann + old_size, 0, + (annotation-ann_size - old_size) * sizeof(struct annotation)); + if (!annotation-ann) return; } -- 1.8.5.5 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] i965: Initialize new chunks of realloc'd memory.
I think you want to move the memset after the !annotation-ann bail out. Currently, if that allocation were to fail (and we care enough to check...) , you'll segfault. On Wed, Jul 9, 2014 at 3:44 PM, Matt Turner matts...@gmail.com wrote: Otherwise we'd compare uninitialized pointers with NULL and dereference, leading to crashes. --- src/mesa/drivers/dri/i965/intel_asm_annotation.c | 4 1 file changed, 4 insertions(+) diff --git a/src/mesa/drivers/dri/i965/intel_asm_annotation.c b/src/mesa/drivers/dri/i965/intel_asm_annotation.c index 4717baf..d524725 100644 --- a/src/mesa/drivers/dri/i965/intel_asm_annotation.c +++ b/src/mesa/drivers/dri/i965/intel_asm_annotation.c @@ -96,9 +96,13 @@ void annotate(struct brw_context *brw, struct backend_instruction *inst, unsigned offset) { if (annotation-ann_size = annotation-ann_count) { + int old_size = annotation-ann_size; annotation-ann_size = MAX2(1024, annotation-ann_size * 2); annotation-ann = reralloc(annotation-mem_ctx, annotation-ann, struct annotation, annotation-ann_size); + memset(annotation-ann + old_size, 0, + (annotation-ann_size - old_size) * sizeof(struct annotation)); + if (!annotation-ann) return; } -- 1.8.5.5 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] i965: Initialize new chunks of realloc'd memory.
On Tue, Jul 8, 2014 at 9:51 PM, Chris Forbes chr...@ijw.co.nz wrote: I think you want to move the memset after the !annotation-ann bail out. Currently, if that allocation were to fail (and we care enough to check...) , you'll segfault. Yeah... of course. Thanks. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev