gdb: check result of gdb_fopen_cloexec in dump_binary_file
Bug 27773 shows that passing a filename in a non-existent directory to the "dump binary" command leads to a gdb crash. This is because the gdb_fopen_cloexec in dump_binary_file fails (returns nullptr) and the return value is not checked. Fix that by erroring out if gdb_fopen_cloexec fails. gdb/ChangeLog: PR gdb/27773 * cli/cli-dump.c (dump_binary_file): Check result of gdb_fopen_cloexec. gdb/testsuite/ChangeLog: PR gdb/27773 * gdb.base/dump.exp: Test dump to non-existent dir. Change-Id: Iea89a3bf9e6b9dcc31142faa5ae17bc855759328
This commit is contained in:
parent
21f9178575
commit
bea3329b76
4 changed files with 24 additions and 0 deletions
|
@ -135,6 +135,9 @@ dump_binary_file (const char *filename, const char *mode,
|
|||
int status;
|
||||
|
||||
gdb_file_up file = gdb_fopen_cloexec (filename, mode);
|
||||
if (file == nullptr)
|
||||
perror_with_name (filename);
|
||||
|
||||
status = fwrite (buf, len, 1, file.get ());
|
||||
if (status != 1)
|
||||
perror_with_name (filename);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue