gdbserver: QTNotes, plug memory leak.
authorPedro Alves <palves@redhat.com>
Thu, 14 Feb 2013 18:07:19 +0000 (18:07 +0000)
committerPedro Alves <palves@redhat.com>
Thu, 14 Feb 2013 18:07:19 +0000 (18:07 +0000)
The previous notes aren't being released before setting new ones.

Tested on x86_64 Fedora 17.

gdb/gdbserver/
2013-02-14  Pedro Alves  <palves@redhat.com>

Plug memory leak.

* tracepoint.c (cmd_qtnotes): Free TRACING_USER_NAME,
TRACING_NOTES and TRACING_STOP_NOTE before clobbering.

gdb/gdbserver/ChangeLog
gdb/gdbserver/tracepoint.c

index 07bd1a8a7ad47de42dd9bbb0dd8cb897cd0c50f5..3b2239fc866ac550ce54240d7d5dfd8a5b82671c 100644 (file)
@@ -1,3 +1,10 @@
+2013-02-14  Pedro Alves  <palves@redhat.com>
+
+       Plug memory leak.
+
+       * tracepoint.c (cmd_qtnotes): Free TRACING_USER_NAME,
+       TRACING_NOTES and TRACING_STOP_NOTE before clobbering.
+
 2013-02-14  Pedro Alves  <palves@redhat.com>
 
        * tracepoint.c (cmd_qtdpsrc): Use savestring.
index 0ffedaa134424ba15538640b6f663a82f615b590..95c55adec3f09f9ff568516a1e17a9cd3b970bc1 100644 (file)
@@ -4042,6 +4042,7 @@ cmd_qtnotes (char *own_buf)
          user[nbytes] = '\0';
          ++packet; /* skip the semicolon */
          trace_debug ("User is '%s'", user);
+         xfree (tracing_user_name);
          tracing_user_name = user;
        }
       else if (strncmp ("notes:", packet, strlen ("notes:")) == 0)
@@ -4055,6 +4056,7 @@ cmd_qtnotes (char *own_buf)
          notes[nbytes] = '\0';
          ++packet; /* skip the semicolon */
          trace_debug ("Notes is '%s'", notes);
+         xfree (tracing_notes);
          tracing_notes = notes;
        }
       else if (strncmp ("tstop:", packet, strlen ("tstop:")) == 0)
@@ -4068,6 +4070,7 @@ cmd_qtnotes (char *own_buf)
          stopnote[nbytes] = '\0';
          ++packet; /* skip the semicolon */
          trace_debug ("tstop note is '%s'", stopnote);
+         xfree (tracing_stop_note);
          tracing_stop_note = stopnote;
        }
       else