Comment 14 for bug 485980

Revision history for this message
In , Christian (christian-redhat-bugs) wrote :

Description of problem:
some directories are not displayed in the directory tree when browsing on a CIFS share

Version-Release number of selected component (if applicable):
easytag-2.1.6-5.fc12.i686

How reproducible:
100%

The reason is that sometimes the CIFS server provides very large inode numbers like:
stat /my/cifs/store
  File: `/my/cifs/store'
  Size: 0 Blocks: 0 IO Block: 16384 directory
Device: 1ch/28d Inode: 278185041108994 Links: 1
Access: (0755/drwxr-xr-x) Uid: ( 500/ chkr) Gid: ( 0/ root)
Access: 2010-08-31 20:38:47.000000000 +0200
Modify: 2010-04-24 17:10:15.000000000 +0200
Change: 2010-04-24 17:10:15.000000000 +0200

If easytag uses then "stat" on this directory, stat will return with -1 and the following errno: 75, Value too large for defined data type. As a result this directory will be ignored in src/browser.c in expand_cb() (there it is even worse: the return value of stat is not checked at all and so the data in statbuf may be just random).

Other programs suffer from the problem as well:
http://www.musicpd.org/mantis/view.php?id=2665

The best solution seems to be to compile the program with -D_FILE_OFFSET_BITS=64.