Hey all, in KDevelop 4 I have this reproducible issue:
==16813== Syscall param utimes(tvp[1]) points to uninitialised byte(s) ==16813== at 0xAA898D7: utimes (in /lib/libc-2.12.so) ==16813== by 0x3072446E: CppTools::FileModificationTimeWrapper::FileModificationTimeWrapper(QStringLi st const&, QString const&) (includepathresolver.cpp:124) ==16813== by 0x30722394: CppTools::IncludePathResolver::resolveIncludePathInternal(QString const&, QString const&, QString const&, CppTools::SourcePathInformation const&, int) (includepathresolver.cpp:712) ==16813== by 0x30721EBA: CppTools::IncludePathResolver::resolveIncludePath(QString const&, QString const&, int) (includepathresolver.cpp:660) ==16813== by 0x3072044A: CppTools::IncludePathResolver::resolveIncludePath(QString const&) (includepathresolver.cpp:443) ==16813== by 0x30701C08: IncludePathComputer::computeBackground() (includepathcomputer.cpp:184) ==16813== by 0x307063F5: CPPParseJob::includePaths() const (cppparsejob.cpp:256) ==16813== by 0x30705DC4: CPPParseJob::mergeDefines(CppPreprocessEnvironment&) const (cppparsejob.cpp:210) ==16813== by 0x30714438: PreprocessJob::run() (preprocessjob.cpp:157) ==16813== by 0x65B3B44: ??? (in /usr/lib/libthreadweaver.so.4.5.0) ==16813== by 0x65B3C7D: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (in /usr/lib/libthreadweaver.so.4.5.0) ==16813== by 0x65B4E42: ??? (in /usr/lib/libthreadweaver.so.4.5.0) ==16813== Address 0x346a9da0 is on thread 13's stack ==16813== Uninitialised value was created by a stack allocation ==16813== at 0x3072228F: CppTools::IncludePathResolver::resolveIncludePathInternal(QString const&, QString const&, QString const&, CppTools::SourcePathInformation const&, int) (includepathresolver.cpp:699) The code for it looks like this: http://gitorious.org/kdevelop/kdevelop/blobs/master/languages/cpp/incl udepathresolver.cpp or here the code before the warning: QByteArray bFileName = filename.toLocal8Bit(); const char* bFileNameC = bFileName.constData(); struct stat s; if( stat( bFileNameC, &s ) == 0 ) { ///Success m_stat[filename] = s.st_mtime; ///change the modification-time to m_newTime struct timeval times[2]; times[0].tv_sec = m_newTime; times[0].tv_usec = 0; times[1].tv_sec = m_newTime; times[1].tv_usec = 0; if( utimes( bFileNameC, times ) != 0 ) { ifTest( cout << "failed to touch " << it->toUtf8().constData() << endl ); } } To me this looks just fine and I don't get what could be unitializsed in the "stack allocation" in loc 699... Is this a false-positive? Or is stat / utimes really wrong here? Note that we haven't had any problems so far (at least none from which we know). Bye -- Milian Wolff [email protected] http://milianw.de
signature.asc
Description: This is a digitally signed message part.
------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm
_______________________________________________ Valgrind-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/valgrind-users
