[1.7] Bug in link() with long filenames

Charles Wilson cygwin@cwilson.fastmail.fm
Sat Jul 11 02:56:00 GMT 2009


It seems that the st_nlink count is not updated for very long file
names. If the filename length is 247, everything is fine. If it is
248...the link count does not get updated, although the files (original
and the link) both have the same st_ino value.

Here's a test case (takes an optional argument that sets the smaller of
the two filename lengths; defaults to 247, which demonstrates the problem).

$ ./longlink
orig1(247):
/tmp/test_longlink/f/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr
link1(247):
/tmp/test_longlink/l/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr
orig2(248):
/tmp/test_longlink/f/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs
link2(248):
/tmp/test_longlink/l/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs


ino: 11821949022413710
dev: 11821950991284627
nlink: 1
ino: 11540474045703055
dev: 11540476014573971
nlink: 1

after link (namelen 247):
original file
ino: 11821949022413710
dev: 11821950991284627
nlink: 2
link
ino: 11821949022413710
dev: 11821950991284627
nlink: 2

after link (namelen 248):
original file
ino: 11540474045703055
dev: 11540476014573971
nlink: 1
link
ino: 11540474045703055
dev: 11540476014573971
nlink: 1

Any idea why "247" is a magic number?

--
Chuck

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: longlink.c
URL: <http://cygwin.com/pipermail/cygwin/attachments/20090711/3866f473/attachment.c>
-------------- next part --------------
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list