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