mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-24 14:41:06 +08:00
Thu Oct 24 17:32:57 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/hurdsig.c (write_corefile): If we can't create the core file, still call crash_dump_task with a null FILE arg. Maybe it won't actually need the file.
This commit is contained in:
parent
1c404962af
commit
78abf56371
@ -153,17 +153,16 @@ write_corefile (int signo, const struct hurd_signal_detail *detail)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Get a port to the directory where the new core file will reside. */
|
/* Get a port to the directory where the new core file will reside. */
|
||||||
|
file = MACH_PORT_NULL;
|
||||||
name = _hurdsig_getenv ("COREFILE");
|
name = _hurdsig_getenv ("COREFILE");
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
name = "core";
|
name = "core";
|
||||||
coredir = __file_name_split (name, (char **) &name);
|
coredir = __file_name_split (name, (char **) &name);
|
||||||
if (coredir == MACH_PORT_NULL)
|
if (coredir != MACH_PORT_NULL)
|
||||||
return 0;
|
|
||||||
/* Create the new file, but don't link it into the directory yet. */
|
/* Create the new file, but don't link it into the directory yet. */
|
||||||
if (err = __dir_mkfile (coredir, O_WRONLY|O_CREAT,
|
__dir_mkfile (coredir, O_WRONLY|O_CREAT,
|
||||||
0600 & ~_hurd_umask, /* XXX ? */
|
0600 & ~_hurd_umask, /* XXX ? */
|
||||||
&file))
|
&file))
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* Call the core dumping server to write the core file. */
|
/* Call the core dumping server to write the core file. */
|
||||||
err = __crash_dump_task (coreserver,
|
err = __crash_dump_task (coreserver,
|
||||||
@ -174,13 +173,14 @@ write_corefile (int signo, const struct hurd_signal_detail *detail)
|
|||||||
_hurd_ports[INIT_PORT_CTTYID].port,
|
_hurd_ports[INIT_PORT_CTTYID].port,
|
||||||
MACH_MSG_TYPE_COPY_SEND);
|
MACH_MSG_TYPE_COPY_SEND);
|
||||||
__mach_port_deallocate (__mach_task_self (), coreserver);
|
__mach_port_deallocate (__mach_task_self (), coreserver);
|
||||||
if (! err)
|
|
||||||
|
if (! err && file != MACH_PORT_NULL)
|
||||||
/* The core dump into FILE succeeded, so now link it into the
|
/* The core dump into FILE succeeded, so now link it into the
|
||||||
directory. */
|
directory. */
|
||||||
err = __dir_link (file, coredir, name, 1);
|
err = __dir_link (file, coredir, name, 1);
|
||||||
__mach_port_deallocate (__mach_task_self (), file);
|
__mach_port_deallocate (__mach_task_self (), file);
|
||||||
__mach_port_deallocate (__mach_task_self (), coredir);
|
__mach_port_deallocate (__mach_task_self (), coredir);
|
||||||
return !err;
|
return !err && file != MACH_PORT_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user