On Fri, 2022-12-30 at 11:34 +0100, Gisle Vanem wrote:
> I'm using the very latest GNU-make built on Win-10 by myself.
> Except I've disabled the call to 'SetUnhandledExceptionFilter()'.
> 
> In one particular Wine Makefile I get a crash in 'hash_free_items()':
>    gnumake!hash_free_items+0x22
>    gnumake!hash_free+0x30
>    gnumake!clear_directory_contents+0x34
>    gnumake!find_directory+0xed
>    gnumake!dir_file_exists_p+0xd
>    gnumake!selective_vpath_search+0x239
>    gnumake!vpath_search+0x9d
>    gnumake!pattern_search+0x1212
> ...
> 
> This is when creating an .res-file from a .rc-file.
> And I use this 'vpath %.rc obj' construct.

Can you try the following patch (after removing your change checking
the value of "ctr") and see if it solves the problem?

diff --git a/src/dir.c b/src/dir.c
index 1e6e7397..7a884d28 100644
--- a/src/dir.c
+++ b/src/dir.c
@@ -283,7 +283,8 @@ clear_directory_contents (struct directory_contents *dc)
       closedir (dc->dirstream);
       dc->dirstream = 0;
     }
-  hash_free (&dc->dirfiles, 1);
+  if (dc->dirfiles.ht_vec != NULL)
+    hash_free (&dc->dirfiles, 1);

   return NULL;
 }


Reply via email to