diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2012-08-24 03:57:22 +0000 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2012-08-24 03:57:22 +0000 |
commit | ecfb0d68c570de8a5e29858d104d82a76982de15 (patch) | |
tree | f9c92bc9004a0809c534981af704cfb6c0428656 /gdb/xstormy16-tdep.c | |
parent | e7d50cc9e6af53a13f3a3140795d7b5065e8fe33 (diff) | |
download | gdb-ecfb0d68c570de8a5e29858d104d82a76982de15.zip gdb-ecfb0d68c570de8a5e29858d104d82a76982de15.tar.gz gdb-ecfb0d68c570de8a5e29858d104d82a76982de15.tar.bz2 |
* h8300-tdep.c (h8300_push_dummy_call): Replace unsafe alloca
with xmalloc/cleanup.
* mt-tdep.c (mt_push_dummy_call): Likewise.
* tilegx-tdep.c (tilegx_push_dummy_call): Likewise.
* xstormy16-tdep.c (xstormy16_push_dummy_call): Likewise.
Diffstat (limited to 'gdb/xstormy16-tdep.c')
-rw-r--r-- | gdb/xstormy16-tdep.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c index 47fc86b..d5e315c 100644 --- a/gdb/xstormy16-tdep.c +++ b/gdb/xstormy16-tdep.c @@ -279,16 +279,20 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch, for (j = nargs - 1; j >= i; j--) { char *val; + struct cleanup *back_to; + const gdb_byte *bytes = value_contents (args[j]); typelen = TYPE_LENGTH (value_enclosing_type (args[j])); slacklen = typelen & 1; - val = alloca (typelen + slacklen); - memcpy (val, value_contents (args[j]), typelen); + val = xmalloc (typelen + slacklen); + back_to = make_cleanup (xfree, val); + memcpy (val, bytes, typelen); memset (val + typelen, 0, slacklen); /* Now write this data to the stack. The stack grows upwards. */ write_memory (stack_dest, val, typelen + slacklen); stack_dest += typelen + slacklen; + do_cleanups (back_to); } store_unsigned_integer (buf, xstormy16_pc_size, byte_order, bp_addr); |