Mesa (master): gallivm: abort properly when running out of buffer space in lp_disassembly
Roland Scheidegger
sroland at kemper.freedesktop.org
Mon Mar 16 23:47:30 UTC 2015
Module: Mesa
Branch: master
Commit: 2372275d2fc9e4d3785b34a5aeb7b6126e8cc402
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2372275d2fc9e4d3785b34a5aeb7b6126e8cc402
Author: Roland Scheidegger <sroland at vmware.com>
Date: Fri Mar 13 23:45:20 2015 +0100
gallivm: abort properly when running out of buffer space in lp_disassembly
Before this actually ran into an infinite loop printing out "invalid"...
Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
---
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;
}
More information about the mesa-commit
mailing list