[Mesa-dev] [PATCH] gallivm: abort properly when running out of buffer space in lp_disassembly
Brian Paul
brianp at vmware.com
Mon Mar 16 07:53:13 PDT 2015
On 03/13/2015 04:46 PM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> Before this actually ran into an infinite loop printing out "invalid"...
> ---
> src/gallium/auxiliary/gallivm/lp_bld_debug.cpp | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
> index 402d29e..2c4ed21 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
> @@ -399,19 +399,23 @@ disassemble(const void* func, llvm::raw_ostream & Out)
> break;
> }
> }
> +
> + if (pc >= extent) {
> + Out << "disassembly larger than " << extent << "bytes, aborting\n";
> + break;
> + }
> }
>
> + Out << "\n";
> + Out.flush();
> +
> /*
> * Print GDB command, useful to verify output.
> */
> -
> if (0) {
> _debug_printf("disassemble %p %p\n", bytes, bytes + pc);
> }
>
> - Out << "\n";
> - Out.flush();
> -
> return pc;
> }
>
>
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list