After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 566925 - Crash when processing /usr/include
Crash when processing /usr/include
Status: VERIFIED FIXED
Product: doxygen
Classification: Other
Component: general
1.5.8
Other Solaris
: Normal critical
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2009-01-07 17:34 UTC by Paul Floyd
Modified: 2009-06-07 20:58 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch to doxygen.cpp (1.15 KB, patch)
2009-01-07 17:40 UTC, Paul Floyd
none Details | Review

Description Paul Floyd 2009-01-07 17:34:07 UTC
Steps to reproduce:
1. Put /usr/include in INCLUDE_PATH
2. run Doxygen


Stack trace:
Didn't keep the stacktrace

Other information:
Comment 1 Paul Floyd 2009-01-07 17:36:39 UTC
While processing INCLUDE_PATH,  
which includes /usr/include, doxygen processed /usr/include/GL which is a symlink to ../openwin/include/GL/
resolveSymlink iterates over the directories in the path, finds a  
symlink, reads what the symlink points to then does this

       if (QFileInfo(target).isRelative())
       {
         target = QDir::cleanDirPath(prefix+"/"+target.data());
       }

which boils down to
QDir::cleanDirPath("/usr/include/GL"+"/"+"../openwin/include/GL/")

The result after a call to QDir::cleanDirPath is
/usr/include/openwin/include/GL/

which doesn't exist. Instead of concatenating the relative symlink  
to the prefix, it ought to be concatenated to the basedir, e.g.,

QDir::cleanDirPath("/usr/include+"/"+"../openwin/include/GL/")

I added an extra variable to save the previous state of 'prefix'  
each time round the loop, and put that in the call tp cleanDirPath. Looks like its got past the INCLUDE_PATH processing.
Comment 2 Paul Floyd 2009-01-07 17:40:02 UTC
Created attachment 125948 [details] [review]
patch to doxygen.cpp

This fixes the issue for me
Comment 3 bob 2009-01-08 22:26:54 UTC
Seems to have fixed the problem for me also. Thanks Paul.
Comment 4 Paul Floyd 2009-01-09 08:01:08 UTC
The patch that I added is probably not portable to Windows, since it assumes that the root of the symlink is "/", rather than "x:\"
Comment 5 Jean-Marie 2009-01-19 09:27:38 UTC
Seems to solve my problem also with symlinks bad interpretation :

Searching for files in directory **land/shotDefinition
QDir::readDirEntries: Cannot read the directory: **land/sqc.shared/shotDefinition
Segmentation fault

ls -la **land
lrwxrwxrwx shotDefinition -> ../sqc.shared/shotDefinition/
lrwxrwxrwx system -> ../sqc.shared/system/

try to read **land/sqc.shared/shotDefinition in place of **land/../sqc.shared/shotDefinition
Comment 6 Dimitri van Heesch 2009-01-25 14:52:33 UTC
Thanks for the patch Paul, I'll include it in the next subversion update.
Comment 7 Dimitri van Heesch 2009-04-30 15:04:16 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.5.9. Please verify if this is indeed the case and reopen the
bug if you think it is not fixed (include any additional information that you
think can be relevant).
Comment 8 Dimitri van Heesch 2009-04-30 15:04:53 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.5.9. Please verify if this is indeed the case and reopen the
bug if you think it is not fixed (include any additional information that you
think can be relevant).