Re: [ANNOUNCEMENT] cygwin 3.1.0-0.5 (TEST)

2019-09-21 Thread Ken Brown
Hi Takashi,

On 9/20/2019 6:05 PM, Ken Brown wrote:> I'll make a new test release this 
weekend, or whenever you think it's time.

I'm building a new test release right now.  I'll upload it in about 24 hours 
unless you tell me that you'd like me to wait for further patches.

Ken


Re: [PATCH] Cygwin: remove old cruft from path_conv::check

2019-09-21 Thread Ken Brown
On 9/21/2019 1:34 PM, Ken Brown wrote:
> Prior to commit b0717aae, path_conv::check had the following code:
> 
>if (strncmp (path, ".\\", 4))
>  {
>/* Windows ignores trailing dots and spaces in the last path
>   component, and ignores exactly one trailing dot in inner
>   path components. */
>char *tail = NULL;
>[...]
>if (!tail || tail == path)
>  /* nothing */;
>else if (tail[-1] != '\\')
>  {
>*tail = '\0';
>[...]
>  }
> 
> Commit b0717aae0 intended to disable this code, but it inadvertently
> disabled only part of it.  In particular, the declaration of the local
> tail variable was in the disabled code, but the following remained:
> 
>if (!tail || tail == path)
>  /* nothing */;
>else if (tail[-1] != '\\')
>  {
>*tail = '\0';
>[...]
>  }
> 
> [A later commit removed the disabled code.]
> 
> The tail variable here points into a string different from path,
> causing that string to be truncated under some circumstances.  See
> 
>https://cygwin.com/ml/cygwin/2019-09/msg1.html
> 
> for more details.
> 
> This commit fixes the problem by removing the leftover code
> that was intended to be removed in b0717aae.
> ---
>   winsup/cygwin/path.cc | 13 -
>   1 file changed, 13 deletions(-)
> 
> diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
> index c13701aa0..2fbacd881 100644
> --- a/winsup/cygwin/path.cc
> +++ b/winsup/cygwin/path.cc
> @@ -1168,19 +1168,6 @@ path_conv::check (const char *src, unsigned opt,
>   
> if (dev.isfs ())
>   {
> -   if (strncmp (path, ".\\", 4))
> - {
> -   if (!tail || tail == path)
> - /* nothing */;
> -   else if (tail[-1] != '\\')
> - *tail = '\0';
> -   else
> - {
> -   error = ENOENT;
> -   return;
> - }
> - }
> -
> /* If FS hasn't been checked already in symlink_info::check,
>do so now. */
> if (fs.inited ()|| fs.update (get_nt_native_path (), NULL))

This seems pretty straightforward to me, but I'll wait a few days before 
committing it in case I'm missing something.

Ken


[PATCH] Cygwin: remove old cruft from path_conv::check

2019-09-21 Thread Ken Brown
Prior to commit b0717aae, path_conv::check had the following code:

  if (strncmp (path, ".\\", 4))
{
  /* Windows ignores trailing dots and spaces in the last path
 component, and ignores exactly one trailing dot in inner
 path components. */
  char *tail = NULL;
  [...]
  if (!tail || tail == path)
/* nothing */;
  else if (tail[-1] != '\\')
{
  *tail = '\0';
  [...]
}

Commit b0717aae0 intended to disable this code, but it inadvertently
disabled only part of it.  In particular, the declaration of the local
tail variable was in the disabled code, but the following remained:

  if (!tail || tail == path)
/* nothing */;
  else if (tail[-1] != '\\')
{
  *tail = '\0';
  [...]
}

[A later commit removed the disabled code.]

The tail variable here points into a string different from path,
causing that string to be truncated under some circumstances.  See

  https://cygwin.com/ml/cygwin/2019-09/msg1.html

for more details.

This commit fixes the problem by removing the leftover code
that was intended to be removed in b0717aae.
---
 winsup/cygwin/path.cc | 13 -
 1 file changed, 13 deletions(-)

diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index c13701aa0..2fbacd881 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -1168,19 +1168,6 @@ path_conv::check (const char *src, unsigned opt,
 
   if (dev.isfs ())
{
- if (strncmp (path, ".\\", 4))
-   {
- if (!tail || tail == path)
-   /* nothing */;
- else if (tail[-1] != '\\')
-   *tail = '\0';
- else
-   {
- error = ENOENT;
- return;
-   }
-   }
-
  /* If FS hasn't been checked already in symlink_info::check,
 do so now. */
  if (fs.inited ()|| fs.update (get_nt_native_path (), NULL))
-- 
2.21.0



Re: [ANNOUNCEMENT] cygwin 3.1.0-0.5 (TEST)

2019-09-21 Thread Takashi Yano
Hi Ken,

On Sat, 21 Sep 2019 21:58:07 +
Ken Brown wrote:
> On 9/20/2019 6:05 PM, Ken Brown wrote:> I'll make a new test release this 
> weekend, or whenever you think it's time.
> 
> I'm building a new test release right now.  I'll upload it in about 24 hours 
> unless you tell me that you'd like me to wait for further patches.

I currently do not have any patch planning. Please go ahead.

-- 
Takashi Yano