<br><font size=2 face="sans-serif">Bonjour Mathieu,</font>
<br>
<br><font size=2 face="sans-serif">On 09/11/2004 21:09:59 Mathieu Malaterre wrote:<br>
><br>
>Qu'est-ce que tu entends par probleme. Ca passe bien sur toutes les<br>
>machines (ou presque). Est-ce que c'est un warning avec valgrind ?<br>
></font>
<br>
<br><font size=2 face="sans-serif">Mon probleme est le suivant: ctest ne passe pas, j'ai un segfault sur windows 2000 (la mémoire ne peut pas etre "written"), car</font>
<br>
<br><font size=2 face="sans-serif">Le membre Decompressed est alloué avec une longeur DecompressedSize</font>
<br><font size=2 face="sans-serif">En ensuite le tableau est rempli a l'aide d'un fread sur une longeur PixelDataLength</font>
<br>
<br><font size=2 face="sans-serif">En dans le cas de l'image siemens_gbs_iii-16-acr_nema_1.acr, il se trouve que PixelDataLength > DecompressedSize</font>
<br><font size=2 face="sans-serif">donc on lit plus de donnée (je ne parle pas de pb de debordement en fin de fichier) que le tableau ne peut en contenir, d'ou un debordement de tableau</font>
<br>
<br><font size=2 face="sans-serif">Je suis le seul a observer ce probleme ?</font>
<br><font size=2 face="sans-serif">Est-ce un probleme du a CVS pour recuperer les images binaires dans gdcmData ?</font>
<br><font size=2 face="sans-serif">J'ai vu a ce propos un mail ce matin concernant les -kb -ko pour les fichiers binaires. Il serait peut interessant, pour etre sur que l'on dispose des bonnes images, de commiter egalement le checksum md5 des images binaires. </font>
<br><font size=2 face="sans-serif">dans mon cas: </font>
<br>
<br><font size=2 face="sans-serif">$ md5sum ./gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr</font>
<br><font size=2 face="sans-serif">83c49fddf19b535867567720dfa97b07 *./gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr</font>
<br>
<br>
<br><font size=2 face="sans-serif">Je n'utilise pas valgrind, mais Rational Purify. Lui aussi se plaint:</font>
<br>
<br><font size=2 face="sans-serif"><b>[E] ABW: Array bounds write in memcpy {1 occurrence}</b></font>
<br><font size=2 face="sans-serif"> Writing 4095 bytes to 0x043a2ff9 (512 bytes at 0x043a3df8 illegal)</font>
<br><font size=2 face="sans-serif"> Address 0x043a2ff9 is 127489 bytes into a 131072 byte block at 0x04383df8</font>
<br><font size=2 face="sans-serif"> Address 0x043a2ff9 points to a C++ new block in heap 0x04190000</font>
<br><font size=2 face="sans-serif"> Thread ID: 0x888</font>
<br><font size=2 face="sans-serif"> <b> Error location</b></font>
<br><font size=2 face="sans-serif"> memcpy [MSVCP71D.dll]</font>
<br><font size=2 face="sans-serif"> std::char_traits<char>::copy(char *,char const*,UINT) [iosfwd:448]</font>
<br><font size=2 face="sans-serif"> std::basic_streambuf<char,char_traits<char>::std>::xsgetn(char *,int) [streambuf:302]</font>
<br><font size=2 face="sans-serif"> std::basic_streambuf<char,char_traits<char>::std>::sgetn(char *,int) [streambuf:113]</font>
<br><font size=2 face="sans-serif"> std::basic_istream<char,char_traits<char>::std>::read(char *,int) [istream:657]</font>
<br><font size=2 face="sans-serif"> gdcm::PixelConvert::ReadAndDecompressPixelData(basic_ifstream<char,char_traits<char>::std>::std *) [gdcmpixelconvert.cxx:612]</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> else if ( IsDecompressed )</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"><b> => fp->read( (char*)Decompressed, PixelDataLength);</b></font>
<br><font size=2 face="sans-serif"> if ( fp->fail() || fp->eof())//Fp->gcount() == 1</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> dbg.Verbose( 0, "PixelConvert::ReadAndDecompressPixelData: "</font>
<br><font size=2 face="sans-serif"> gdcm::File::GetDecompressed(void) [gdcmfile.cxx:515]</font>
<br><font size=2 face="sans-serif"> gdcm::File::GetImageData(void) [gdcmfile.cxx:309]</font>
<br><font size=2 face="sans-serif"> main [testreadwritereadcompare.cxx:57]</font>
<br><font size=2 face="sans-serif"> mainCRTStartup [crtexe.c:398]</font>
<br><font size=2 face="sans-serif"> _safe_se_handler_count [TestReadWriteReadCompare.exe]</font>
<br><font size=2 face="sans-serif"> <b> Allocation location</b></font>
<br><font size=2 face="sans-serif"> new(UINT) [newop.cpp:10]</font>
<br><font size=2 face="sans-serif"> <>=(UINT) [newaop.cpp:7]</font>
<br><font size=2 face="sans-serif"> gdcm::PixelConvert::AllocateDecompressed(void) [gdcmpixelconvert.cxx:97]</font>
<br><font size=2 face="sans-serif"> delete [] Decompressed;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"><b> => Decompressed = new uint8_t[ DecompressedSize ];</b></font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> /**</font>
<br><font size=2 face="sans-serif"> gdcm::PixelConvert::ReadAndDecompressPixelData(basic_ifstream<char,char_traits<char>::std>::std *) [gdcmpixelconvert.cxx:586]</font>
<br><font size=2 face="sans-serif"> gdcm::File::GetDecompressed(void) [gdcmfile.cxx:515]</font>
<br><font size=2 face="sans-serif"> gdcm::File::GetImageData(void) [gdcmfile.cxx:309]</font>
<br><font size=2 face="sans-serif"> main [testreadwritereadcompare.cxx:57]</font>
<br><font size=2 face="sans-serif"> mainCRTStartup [crtexe.c:398]</font>
<br><font size=2 face="sans-serif"> _safe_se_handler_count [TestReadWriteReadCompare.exe]</font>
<br>
<br>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Le titre de ce mail est peut etre trompeur car je teste la version "courante" de cvs (updaté hier).</font>
<br>
<br>
<br><font size=2 face="sans-serif">./src/gdcmBinEntry.cxx: $Revision: 1.35 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDebug.cxx: $Revision: 1.10 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDir.cxx: $Revision: 1.77 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirElement.cxx: $Revision: 1.22 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirImage.cxx: $Revision: 1.13 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirMeta.cxx: $Revision: 1.14 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirObject.cxx: $Revision: 1.7 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirPatient.cxx: $Revision: 1.18 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirSerie.cxx: $Revision: 1.20 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDicomDirStudy.cxx: $Revision: 1.17 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDict.cxx: $Revision: 1.51 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDictEntry.cxx: $Revision: 1.28 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDictSet.cxx: $Revision: 1.44 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDirList.cxx: $Revision: 1.25 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDocEntry.cxx: $Revision: 1.29 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDocEntrySet.cxx: $Revision: 1.25 $</font>
<br><font size=2 face="sans-serif">./src/gdcmDocument.cxx: $Revision: 1.118 $</font>
<br><font size=2 face="sans-serif">./src/gdcmElementSet.cxx: $Revision: 1.26 $</font>
<br><font size=2 face="sans-serif">./src/gdcmException.cxx: $Revision: 1.22 $</font>
<br><font size=2 face="sans-serif">./src/gdcmFile.cxx: $Revision: 1.152 $</font>
<br><font size=2 face="sans-serif">./src/gdcmGlobal.cxx: $Revision: 1.6 $</font>
<br><font size=2 face="sans-serif">./src/gdcmHeader.cxx: $Revision: 1.198 $</font>
<br><font size=2 face="sans-serif">./src/gdcmHeaderHelper.cxx: $Revision: 1.43 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJPEGFragment.cxx: $Revision: 1.1 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJPEGFragmentsInfo.cxx: $Revision: 1.4 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJpeg.cxx: $Revision: 1.28 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJpeg12.cxx: $Revision: 1.26 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJpeg16.cxx: $Revision: 1.5 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJpeg2000.cxx: $Revision: 1.13 $</font>
<br><font size=2 face="sans-serif">./src/gdcmJpeg8.cxx: $Revision: 1.11 $</font>
<br><font size=2 face="sans-serif">./src/gdcmPixelConvert.cxx: $Revision: 1.25 $</font>
<br><font size=2 face="sans-serif">./src/gdcmRLEFrame.cxx: $Revision: 1.1 $</font>
<br><font size=2 face="sans-serif">./src/gdcmRLEFramesInfo.cxx: $Revision: 1.3 $</font>
<br><font size=2 face="sans-serif">./src/gdcmSQItem.cxx: $Revision: 1.35 $</font>
<br><font size=2 face="sans-serif">./src/gdcmSeqEntry.cxx: $Revision: 1.34 $</font>
<br><font size=2 face="sans-serif">./src/gdcmTS.cxx: $Revision: 1.28 $</font>
<br><font size=2 face="sans-serif">./src/gdcmUtil.cxx: $Revision: 1.60 $</font>
<br><font size=2 face="sans-serif">./src/gdcmVR.cxx: $Revision: 1.22 $</font>
<br><font size=2 face="sans-serif">./src/gdcmValEntry.cxx: $Revision: 1.34 $</font>