aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-04-02 21:24:52 -1000
committerRichard Henderson <richard.henderson@linaro.org>2024-05-15 08:55:18 +0200
commit4abc892362f8282450f18c4e45c5b0534461d01e (patch)
tree7f0f046c1ec6f7e04e975f134645cb2fe62f626d /plugins
parentbf4bb074b72a7dc6c9ee5379a1d6b693dcd0a5a6 (diff)
plugins: Copy memory in qemu_plugin_insn_data
Instead of returning a host pointer, copy the data into storage provided by the caller. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/api.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/api.c b/plugins/api.c
index 2144da1fe8..5ff4e9d325 100644
--- a/plugins/api.c
+++ b/plugins/api.c
@@ -216,9 +216,12 @@ qemu_plugin_tb_get_insn(const struct qemu_plugin_tb *tb, size_t idx)
* instruction being translated.
*/
-const void *qemu_plugin_insn_data(const struct qemu_plugin_insn *insn)
+size_t qemu_plugin_insn_data(const struct qemu_plugin_insn *insn,
+ void *dest, size_t len)
{
- return insn->data->data;
+ len = MIN(len, insn->data->len);
+ memcpy(dest, insn->data->data, len);
+ return len;
}
size_t qemu_plugin_insn_size(const struct qemu_plugin_insn *insn)