#ifdef HAVE_STRING_H
#include <string.h>
-@@ -105,13 +106,45 @@
+@@ -105,13 +106,44 @@
char tbuffer[256];
struct stat tstat;
register afs_int32 code;
+ struct dirent *file;
+ char *p;
+ size_t length;
++ char pid[256];
+
++ sprintf(pid, "%d", aproc->pid);
+ logdir = opendir(AFSDIR_LOGS_DIR);
+ if (logdir == NULL)
+ return;
+ while ((file = readdir(logdir)) != NULL) {
+ if (strncmp(file->d_name, "core.", 5) != 0)
+ continue;
-+ p = file->d_name + 5;
-+ do {
-+ if (!isdigit((unsigned int) *p))
-+ break;
-+ p++;
-+ } while (*p != '\0');
-+ if (*p == '\0') {
++ if (strcmp(file->d_name + 5, pid) == 0) {
+ length = strlen(AFSDIR_LOGS_DIR) + strlen(file->d_name) + 2;
+ corefile = malloc(length);
-+ if (corefile == NULL)
++ if (corefile == NULL) {
++ closedir(logdir);
+ return;
++ }
+ sprintf(corefile, "%s/%s", AFSDIR_LOGS_DIR, file->d_name);
+ code = 0;
+ break;
+ }
+ }
++ closedir(logdir);
+ }
if (code)
return;
-@@ -124,7 +157,12 @@
+@@ -124,7 +156,12 @@
TimeFields->tm_hour, TimeFields->tm_min, TimeFields->tm_sec);
strcpy(tbuffer, FileName);
#endif