[PATCH] Fixed crash on wine by adding NULL check after memchr

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] Fixed crash on wine by adding NULL check after memchr

Arseniy Lartsev
This is not a joke, there are vendors out there who build software for cygwin
only. Besides, this NULL check is good to have anyway.
---
 winsup/cygwin/path.cc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index b5efd61b2..c8e73c64c 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -4307,6 +4307,8 @@ find_fast_cwd_pointer ()
   const uint8_t *use_cwd = rcall + 5 + offset;
   /* Find first `push %edi' instruction. */
   const uint8_t *pushedi = (const uint8_t *) memchr (use_cwd, 0x57, 32);
+  if (!pushedi)
+    return NULL;
   /* ...which should be followed by `mov crit-sect-addr,%edi' then
      `push %edi', or by just a single `push crit-sect-addr'. */
   const uint8_t *movedi = pushedi + 1;
--
2.17.1



Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Fixed crash on wine by adding NULL check after memchr

Corinna Vinschen-2
On Jan  7 16:34, Arseniy Lartsev wrote:

> This is not a joke, there are vendors out there who build software for cygwin
> only. Besides, this NULL check is good to have anyway.
> ---
>  winsup/cygwin/path.cc | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
> index b5efd61b2..c8e73c64c 100644
> --- a/winsup/cygwin/path.cc
> +++ b/winsup/cygwin/path.cc
> @@ -4307,6 +4307,8 @@ find_fast_cwd_pointer ()
>    const uint8_t *use_cwd = rcall + 5 + offset;
>    /* Find first `push %edi' instruction. */
>    const uint8_t *pushedi = (const uint8_t *) memchr (use_cwd, 0x57, 32);
> +  if (!pushedi)
> +    return NULL;
>    /* ...which should be followed by `mov crit-sect-addr,%edi' then
>       `push %edi', or by just a single `push crit-sect-addr'. */
>    const uint8_t *movedi = pushedi + 1;
> --
> 2.17.1
Pushed.


Thanks,
Corinna

--
Corinna Vinschen
Cygwin Maintainer

signature.asc (849 bytes) Download Attachment