From b2bfade325e73c2f5c2c2bbe056d06dc9df04fa4 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 6 Sep 2001 18:06:27 +0000 Subject: [PATCH] * cygheap.cc (cygheap_fixup_in_child): Don't consider a NULL bucket as a candidate for deletion. It is actually the end of a linked list chain. * exceptions.cc (open_stackdumpfile): Default to "unknown" program name if myself->progname hasn't been filled out yet. --- winsup/cygwin/ChangeLog | 9 +++++++++ winsup/cygwin/cygheap.cc | 2 +- winsup/cygwin/exceptions.cc | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index ee455caf9..7afb90be1 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,12 @@ +Thu Sep 6 14:03:49 2001 Christopher Faylor + + * cygheap.cc (cygheap_fixup_in_child): Don't consider a NULL bucket as + a candidate for deletion. It is actually the end of a linked list + chain. + + * exceptions.cc (open_stackdumpfile): Default to "unknown" program name + if myself->progname hasn't been filled out yet. + Thu Sep 6 01:16:44 2001 Christopher Faylor Move appropriate variables to NO_COPY segment, throughout. diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc index 8c45b1bce..53a66cfac 100644 --- a/winsup/cygwin/cygheap.cc +++ b/winsup/cygwin/cygheap.cc @@ -136,7 +136,7 @@ cygheap_fixup_in_child (child_info *ci, bool execed) for (_cmalloc_entry *rvc = cygheap->chain; rvc; rvc = rvc->prev) { cygheap_entry *ce = (cygheap_entry *) rvc->data; - if (rvc->b >= NBUCKETS || ce->type <= HEAP_1_START) + if (!rvc->ptr || rvc->b >= NBUCKETS || ce->type <= HEAP_1_START) continue; else if (ce->type < HEAP_1_MAX) ce->type += HEAP_1_MAX; /* Mark for freeing after next exec */ diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index cdeb112e5..a06774d09 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -158,7 +158,9 @@ open_stackdumpfile () { const char *p; /* write to progname.stackdump if possible */ - if ((p = strrchr (myself->progname, '\\'))) + if (!myself->progname[0]) + p = "unknown"; + else if ((p = strrchr (myself->progname, '\\'))) p++; else p = myself->progname;