Fix double free when running gdb.linespec/ls-errs.exp (PR breakpoints/21553)
authorPedro Alves <palves@redhat.com>
Tue, 6 Jun 2017 14:53:59 +0000 (15:53 +0100)
committerPedro Alves <palves@redhat.com>
Tue, 6 Jun 2017 14:53:59 +0000 (15:53 +0100)
commite1e01040aa83ddef0bb5c60a8b187f769b2b1ec3
tree1b37b56bd113804c14d9835523a018330e5cd999
parentfbe654c8bc78eb06b6d7ee4fcec64e9e34e7a9ac
Fix double free when running gdb.linespec/ls-errs.exp (PR breakpoints/21553)

The problem is that b->extra_string is free'ed twice: Once in the
breakpoint's dtor, and another time via make_cleanup (xfree).

This patch gets rid of the cleanups, fixing the problem.

Tested on x86_64 GNU/Linux.

gdb/ChangeLog:
2017-06-06  Pedro Alves  <palves@redhat.com>

PR breakpoints/21553
* breakpoint.c (create_breakpoints_sal_default)
(init_breakpoint_sal, create_breakpoint_sal): Use
gdb::unique_xmalloc_ptr for string parameters.
(create_breakpoint): Constify 'extra_string' and 'cond_string'
parameters.  Replace cleanups with gdb::unique_xmalloc_ptr.
(base_breakpoint_create_breakpoints_sal)
(bkpt_create_breakpoints_sal, tracepoint_create_breakpoints_sal)
(strace_marker_create_breakpoints_sal)
(create_breakpoints_sal_default): Use gdb::unique_xmalloc_ptr for
string parameters.
* breakpoint.h (breakpoint_ops::create_breakpoints_sal): Use
gdb::unique_xmalloc_ptr for string parameters.
(create_breakpoint): Constify 'extra_string' and 'cond_string'
parameters.
gdb/ChangeLog
gdb/breakpoint.c
gdb/breakpoint.h
This page took 0.028865 seconds and 4 git commands to generate.