DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 48FIG5g8622590
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=aYOE2zy0
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC4163858430
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1726424165;
	bh=2tNY/7wuwR6dIAFD38k7H8ZBITJ8Nm8upg6Evoj8PsE=;
	h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=aYOE2zy0wHQSgQ1HOVVmFzJPq0FCQ6RWdWq++3ICAq4fw1A84MK+6AJSlH/RZ7DUZ
	 rwtI2v3xmE6oXuH05LaQggymkE4Sn3Op9NeKNNaioTvEb0nIY+5BdX8eMYFzRrmGSD
	 tuivluAFOn/DuloM63BhFV4vxEwJXuX7EKs21cgs=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E4E933858402
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E4E933858402
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1726424145; cv=none;
 b=shtZkl83TYY0WVkf3g/aoYr/VP7U/cqzOjFNPQuYJnduRFpHSxuUKmbpwkNQROsBVwLv1/ckhYTYXd29I/mlaNeqMmrwE8V0zNRcjM8SIyWegM73H8EUjF/b43v1sXN35ibReTMZzuT/CCUy6F2SYrzCGemMkSMbg4VSEQBOK5w=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1726424145; c=relaxed/simple;
 bh=cQvOvGidL8sY4Nin4SKJKng/rBCfTORH5pM2u0yk/9Q=;
 h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From;
 b=siWLpmxFGlAwG31D8B25MsPcNvE8XDPDheGh9AZJKG6chY1W9sUV5wiMdyTvxZQ/Sn0WUuQverAADpyiBdnk0+D4t1cVpmUhbrnnzlAtnrKGK3GTiCUxhvyTg1OyAQkMkFbBIzvsVVgIf7VyHJJs16tW/2d3y+oE5mrZp636cE0=
ARC-Authentication-Results: i=1; server2.sourceware.org
X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6
Message-ID: <bc8bd61c-818e-424f-bb42-52f4fecd4849@towo.net>
Date: Sun, 15 Sep 2024 20:15:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: readdir() returns inaccessible name if file was created with
 invalid UTF-8
To: cygwin@cygwin.com
References: <96f2253b-791b-b8a0-97dd-8d257eefb9b1@t-online.de>
Autocrypt: addr=towo@towo.net; keydata=
 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 kQ==
In-Reply-To: <96f2253b-791b-b8a0-97dd-8d257eefb9b1@t-online.de>
X-Provags-ID: V03:K1:koFeHlTmiDBRvFcL7NgcqLEDQROFDADYE1VwZn+SH26wtzHLvxK
 /JUcA6W5MmdsBIdi5Jg29+4p5+yrpXKoT5HaaNwCCP5FxmhqQru/uFZ+L9ZrHnMUZi7y2h/
 m+TnCRkiEQfBFdOIAzyblDImbYWkiOWeP0pAoqHcV0F2dza+0NHldeOndBZ9v/EyZKyBLZK
 GiCBz2SuzAYGLWP9ALa1A==
UI-OutboundReport: notjunk:1;M01:P0:yds52Mnjrl8=;r3MRuIkf243wdkgyw4D+O/mGNBq
 VcMwymOxEPxvqBOURyavm07BNbK0dQm/vhWhA+u6NciJJCHxvDfLolLaqgTfdzPwL5yv0XhRg
 c67BdPJMJs5KHXqmJqf+lVyyJkg+pgruRfbrx/lPw5+Ch/YXX4lF6kjXJmaxaAX97z7daFDkP
 zU9uAgMyrrDOUF2UN+FPrpT+HtP0jAlb2kqVbMwCSbAz3vKKEERfGPBf1/Z4Xg/DUrmEg6kfd
 5TSTeHoRXtJggouwqFNe6aGaKNPC2oB1XEqyW/uFpkXodDzBIFuZQ98BVGio4gZyc2BSJzWJV
 V+SZWUtNQDdFcMKCCwvMd8ZoJt1RvF9BNHj3EUcjVPhFTZNNAlrrOnu+qLcRECzRArSi1NPWU
 cmFECmvBfnxLzhTdxsln7oHe6RVWx66kLbPCfH9fl1sdLGnngK4KMiHeFedd89ONRrGDBJBwa
 N4taRDpzFcw9fWD8rRAO6usDWXfuDSG3uk3SdHUjqUBCUfqKTLaPyp6C6hdTpAALYjN2l0ZDJ
 EzOHaA5uFciTRaoioAUljsEMTvT8GTQZAc+630gZveDqdpPwd5JvpGaiYtO31T7BjtYbgQXz+
 bfRa3LW0F8O9u6j6whTF/p9cmH6tcpRXfTHV2zQQCzG5/l4J7f4YLpB2AMhHl1RhjHgT8P7Hj
 wKEi6XnMSTHK5Sfksnvz50+X2gTfpjT6QotO/aIdlMWeLCwVPZdiAqLcTi7a5L/ZDAiQYu8RH
 Vi6CgZi1uBt8hFtMO8a72FgjZIHcQFGUA==
X-Spam-Status: No, score=1.0 required=5.0 tests=BAYES_00, DKIM_SIGNED,
 DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_NUMSUBJECT,
 RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,
 RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS,
 TXREP autolearn=no autolearn_force=no version=3.4.6
X-Spam-Level: *
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
 server2.sourceware.org
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
Precedence: list
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Thomas Wolff via Cygwin <cygwin@cygwin.com>
Reply-To: Thomas Wolff <towo@towo.net>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: cygwin-bounces~archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 48FIG5g8622590

Am 15.09.2024 um 19:47 schrieb Christian Franke via Cygwin:
> If a file name contains an invalid (truncated) UTF-8 sequence, open()
> does not refuse to create the file. Later readdir() returns a
> different name which could not be used to access the file.
>
> Testcase with U+1F321 (Thermometer):
>
> $ uname -r
> 3.5.4-1.x86_64
>
> $ printf $'\U0001F321' | od -A none -t x1
>  f0 9f 8c a1
>
> $ touch 'file1-'$'\xf0\x9f\x8c\xa1''.ext'
>
> $ touch 'file2-'$'\xf0\x9f\x8c''.ext'
>
> $ touch 'file3-'$'\xf0\x9f\x8c'
>
> $ ls -1
> ls: cannot access 'file2-.?ext': No such file or directory
> ls: cannot access 'file3-': No such file or directory
> 'file1-'$'\360\237\214\241''.ext'
> file2-.?ext
> file3-
I don't reproduce this.
While the file name gets mangled, all resulting file names are valid and
listed:
In file2 the sequence is turned into U+17B3 but exchanged with the dot.
In file3 the same sequence is just dropped.
$ ls -1|cat
file1-🌡.ext
file2-.ឳext
file3-

However, ls file2* fails, as does ls *.

>
>
> Name mapping according to "fhandler_disk_file::readdir" strace lines:
>
> "file1-\xF0\x9F\x8C\xA1.ext" -(open)-> L"file1-\xD83C\xDF21.ext"
> -(readdir)->
> "file1-\xF0\x9F\x8C\xA1.ext"
>
> "file2-\xF0\x9f\x8C.ext" -(open)-> L"file2-\xD83C\xF02Eext" -(readdir)->
> "file2-.\xE1\x9E\xB3ext"
>
> "file3-\xF0\x9F\x8C" -(open)-> L"file3-\xD83C\xF000" -(readdir)->
> "file3-"
>
> Issue found because 'stress-ng --filename ...' could not cleanup its
> temp directory.
>


-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

