2013-01-14 Richard Sharman <richard_sharman@mitel.com>

Pedro Alves  <palves@redhat.com>

	PR remote/14786

	* remote.c (remote_threads_info): Make a copy of the reply from
	qfThreadInfo and use that instead of rs->buf.
This commit is contained in:
Pedro Alves 2013-01-14 18:06:21 +00:00
parent 0d705e9f94
commit 44d594fd82
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2013-01-14 Richard Sharman <richard_sharman@mitel.com>
Pedro Alves <palves@redhat.com>
PR remote/14786
* remote.c (remote_threads_info): Make a copy of the reply from
qfThreadInfo and use that instead of rs->buf.
2013-01-14 Yao Qi <yao@codesourcery.com>
* dbxread.c (dbx_psymtab_to_symtab_1): Don't check PST is NULL.

View File

@ -2759,6 +2759,15 @@ remote_threads_info (struct target_ops *ops)
bufp = rs->buf;
if (bufp[0] != '\0') /* q packet recognized */
{
struct cleanup *old_chain;
char *saved_reply;
/* remote_notice_new_inferior (in the loop below) may make
new RSP calls, which clobber rs->buf. Work with a
copy. */
bufp = saved_reply = xstrdup (rs->buf);
old_chain = make_cleanup (free_current_contents, &saved_reply);
while (*bufp++ == 'm') /* reply contains one or more TID */
{
do
@ -2776,10 +2785,12 @@ remote_threads_info (struct target_ops *ops)
}
}
while (*bufp++ == ','); /* comma-separated list */
free_current_contents (&saved_reply);
putpkt ("qsThreadInfo");
getpkt (&rs->buf, &rs->buf_size, 0);
bufp = rs->buf;
bufp = saved_reply = xstrdup (rs->buf);
}
do_cleanups (old_chain);
return; /* done */
}
}