From: Yao Qi Date: Mon, 20 Jan 2014 12:56:13 +0000 (+0800) Subject: Use rs->buf after getpkt X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8dc5b31971ad5dddf5e6efa07cf70d094c1a9fe5;p=binutils-gdb.git Use rs->buf after getpkt Hi, The following code snippet looks wrong to me char *buf = rs->buf; getpkt (&rs->buf, &rs->buf_size, 0); packet_ok (buf, ); if rs->buf is reallocated in getpkt, buf points to an out of dated memory. This patch removes local 'buf' and uses rs->buf. gdb: 2014-02-05 Yao Qi * remote.c (remote_pass_signals): Remove local 'buf' and use rs->buf. (remote_program_signals): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 73e87749d7c..a6fa6fcd4dd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2014-02-05 Yao Qi + + * remote.c (remote_pass_signals): Remove local 'buf' and use + rs->buf. + (remote_program_signals): Likewise. + 2014-02-05 Yao Qi * ctf.c: Include "inferior.h" and "gdbthread.h". diff --git a/gdb/remote.c b/gdb/remote.c index 4227ed5b307..e1d0a64d211 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -1732,11 +1732,9 @@ remote_pass_signals (int numsigs, unsigned char *pass_signals) *p = 0; if (!rs->last_pass_packet || strcmp (rs->last_pass_packet, pass_packet)) { - char *buf = rs->buf; - putpkt (pass_packet); getpkt (&rs->buf, &rs->buf_size, 0); - packet_ok (buf, &remote_protocol_packets[PACKET_QPassSignals]); + packet_ok (rs->buf, &remote_protocol_packets[PACKET_QPassSignals]); if (rs->last_pass_packet) xfree (rs->last_pass_packet); rs->last_pass_packet = pass_packet; @@ -1785,11 +1783,9 @@ remote_program_signals (int numsigs, unsigned char *signals) if (!rs->last_program_signals_packet || strcmp (rs->last_program_signals_packet, packet) != 0) { - char *buf = rs->buf; - putpkt (packet); getpkt (&rs->buf, &rs->buf_size, 0); - packet_ok (buf, &remote_protocol_packets[PACKET_QProgramSignals]); + packet_ok (rs->buf, &remote_protocol_packets[PACKET_QProgramSignals]); xfree (rs->last_program_signals_packet); rs->last_program_signals_packet = packet; }