git fsck complains about error: refs/tags/.cyg000000000559e25517156b51cf219f51/libgcj-2.95.0: badRefName: invalid refname format?!
brian.inglis@systematicsw.ab.ca
brian.inglis@systematicsw.ab.ca
Tue Feb 3 05:14:59 GMT 2026
On 2026-02-02 08:48, Jakob Bohm via Cygwin wrote:
> On 02/02/2026 14:40, Corinna Vinschen via Cygwin wrote:
>> On Feb 2 13:24, Dan Shelton via Cygwin wrote:
>>> I'm not sure whether the Cygwin code is correct. I did a peek with a
>>> kernel debugger, and I see that FILE_RENAME_INFORMATION.RootDirectory
>>> is always NULL if a file gets renamed to .cyg000000000xxxx. But if I
>>> try that with NTFS or SMB, the NtSetInformationFile() to set
>>> FileRenameInformation always fails.
>> Your testcase is incorrect, unfortunately.
>>
>>> fri->FileNameLength = (wcslen(dstfile)+1)*sizeof(wchar_t);
>> For NT file paths, never count the trailing \0 to the length:
>>
>> fri->FileNameLength = wcslen(dstfile) * sizeof (WCHAR);
>>
>> With that, your testcase works fine for me.
> I am not sure what data structure this supposed "Friday" variable points to,
Ikke fredag: Windows abbrev; see Dan's post earlier in thread with inline STC:
size_t fri_len = sizeof(FILE_RENAME_INFORMATION) +
(wcslen(dstfile)+1)*sizeof(wchar_t);
fri = calloc(1, fri_len);
> but in NT low level APIs, such as the NTXxxx syscalls exported by ntdll.dll,
> a common structure is the UNICODE_STRING, which has 3 fields:
> Pointer to string buffer,
> Size of string buffer in bytes (often (length+1) * sizeof(WCHAR)) and
> Size of actual string in bytes (not counting the optional term 0 or other
> unused buffer space)
> Both byte counts are 16 bits, so structure can only hold strings up to 32767
> WCHARs.
>
> There are very similar structures using plain char and these structures can also
> be marshalled into byte streams by replacing the pointer with a 32 bit byte offset.
Cygwin usually uses the user NT service routines <null>/Ex/W/A functions taking
WCHAR or char pointers or buffers and lengths.
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut
-- Antoine de Saint-Exupéry
More information about the Cygwin
mailing list