[Dcmlib] gdcm version 0.6: correction

Benoit Regrain benoit.regrain at creatis.insa-lyon.fr
Wed Nov 10 14:15:48 CET 2004


J'ai aussi le problème sur cette image.
Cela n'est pas dû à CVS pour recupérer les images binaires, j'ai fait les modfis en -kb pour que toutes les images
soient cohérentes lorsqu'on les récupère, aussi bien sous windows que linux.

En ce qui concerne ton image, j'ai moi aussi ce problème. Mais contrairement à toi, je n'ai pas du tout encore
eu le temps de m'y atteler. Je compte m'y mettre le plus tot possible.

-----------------------------------------------------------------
Benoit Regrain
Ingénieur d'études CNRS (Creatis)
email : regrain at creatis.insa-lyon.fr
phone : (+33) (0) 4.72.43.82.58
fax : (+33) (0) 4.72.43.85.26
INSA - Bâtiment Blaise Pascal
7, avenue Jean Capelle
F - 69621 Villeurbanne Cedex
-----------------------------------------------------------------

  ----- Original Message ----- 
  From: jean-michel.rouet at philips.com 
  To: Mathieu Malaterre 
  Cc: Mailing list gdcm 
  Sent: Wednesday, November 10, 2004 9:59 AM
  Subject: Re: [Dcmlib] gdcm version 0.6: correction



  Bonjour Mathieu, 

  On 09/11/2004 21:09:59 Mathieu Malaterre wrote:
  >
  >Qu'est-ce que tu entends par probleme. Ca passe bien sur toutes les
  >machines (ou presque). Est-ce que c'est un warning avec valgrind ?
  > 

  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 

  Le membre Decompressed est alloué avec une longeur DecompressedSize 
  En ensuite le tableau est rempli a l'aide d'un fread sur une longeur PixelDataLength 

  En dans le cas de l'image siemens_gbs_iii-16-acr_nema_1.acr, il se trouve que PixelDataLength > DecompressedSize 
  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 

  Je suis le seul a observer ce probleme ? 
  Est-ce un probleme du a CVS pour recuperer les images binaires dans gdcmData ? 
  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. 
  dans mon cas: 

  $ md5sum ./gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr 
  83c49fddf19b535867567720dfa97b07 *./gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr 


  Je n'utilise pas valgrind, mais Rational Purify. Lui aussi se plaint: 

  [E] ABW: Array bounds write in memcpy {1 occurrence} 
      Writing 4095 bytes to 0x043a2ff9 (512 bytes at 0x043a3df8 illegal) 
      Address 0x043a2ff9 is 127489 bytes into a 131072 byte block at 0x04383df8 
      Address 0x043a2ff9 points to a C++ new block in heap 0x04190000 
      Thread ID: 0x888 
      Error location 
          memcpy         [MSVCP71D.dll] 
          std::char_traits<char>::copy(char *,char const*,UINT) [iosfwd:448] 
          std::basic_streambuf<char,char_traits<char>::std>::xsgetn(char *,int) [streambuf:302] 
          std::basic_streambuf<char,char_traits<char>::std>::sgetn(char *,int) [streambuf:113] 
          std::basic_istream<char,char_traits<char>::std>::read(char *,int) [istream:657] 
          gdcm::PixelConvert::ReadAndDecompressPixelData(basic_ifstream<char,char_traits<char>::std>::std *) [gdcmpixelconvert.cxx:612] 
                 } 
                 else if ( IsDecompressed ) 
                 { 
           =>        fp->read( (char*)Decompressed, PixelDataLength); 
                    if ( fp->fail() || fp->eof())//Fp->gcount() == 1 
                    { 
                       dbg.Verbose( 0, "PixelConvert::ReadAndDecompressPixelData: " 
          gdcm::File::GetDecompressed(void) [gdcmfile.cxx:515] 
          gdcm::File::GetImageData(void) [gdcmfile.cxx:309] 
          main           [testreadwritereadcompare.cxx:57] 
          mainCRTStartup [crtexe.c:398] 
          _safe_se_handler_count [TestReadWriteReadCompare.exe] 
      Allocation location 
          new(UINT)      [newop.cpp:10] 
          <>=(UINT)      [newaop.cpp:7] 
          gdcm::PixelConvert::AllocateDecompressed(void) [gdcmpixelconvert.cxx:97] 
                   delete [] Decompressed; 
                } 
              
           =>   Decompressed = new uint8_t[ DecompressedSize ]; 
              } 
              
              /** 
          gdcm::PixelConvert::ReadAndDecompressPixelData(basic_ifstream<char,char_traits<char>::std>::std *) [gdcmpixelconvert.cxx:586] 
          gdcm::File::GetDecompressed(void) [gdcmfile.cxx:515] 
          gdcm::File::GetImageData(void) [gdcmfile.cxx:309] 
          main           [testreadwritereadcompare.cxx:57] 
          mainCRTStartup [crtexe.c:398] 
          _safe_se_handler_count [TestReadWriteReadCompare.exe] 





  Le titre de ce mail est peut etre trompeur car je teste la version "courante" de cvs (updaté hier). 


  ./src/gdcmBinEntry.cxx:             $Revision: 1.35 $ 
  ./src/gdcmDebug.cxx:        $Revision: 1.10 $ 
  ./src/gdcmDicomDir.cxx:             $Revision: 1.77 $ 
  ./src/gdcmDicomDirElement.cxx:      $Revision: 1.22 $ 
  ./src/gdcmDicomDirImage.cxx:        $Revision: 1.13 $ 
  ./src/gdcmDicomDirMeta.cxx:         $Revision: 1.14 $ 
  ./src/gdcmDicomDirObject.cxx:       $Revision: 1.7 $ 
  ./src/gdcmDicomDirPatient.cxx:      $Revision: 1.18 $ 
  ./src/gdcmDicomDirSerie.cxx:        $Revision: 1.20 $ 
  ./src/gdcmDicomDirStudy.cxx:        $Revision: 1.17 $ 
  ./src/gdcmDict.cxx:         $Revision: 1.51 $ 
  ./src/gdcmDictEntry.cxx:            $Revision: 1.28 $ 
  ./src/gdcmDictSet.cxx:      $Revision: 1.44 $ 
  ./src/gdcmDirList.cxx:      $Revision: 1.25 $ 
  ./src/gdcmDocEntry.cxx:             $Revision: 1.29 $ 
  ./src/gdcmDocEntrySet.cxx:          $Revision: 1.25 $ 
  ./src/gdcmDocument.cxx:             $Revision: 1.118 $ 
  ./src/gdcmElementSet.cxx:           $Revision: 1.26 $ 
  ./src/gdcmException.cxx:            $Revision: 1.22 $ 
  ./src/gdcmFile.cxx:         $Revision: 1.152 $ 
  ./src/gdcmGlobal.cxx:       $Revision: 1.6 $ 
  ./src/gdcmHeader.cxx:       $Revision: 1.198 $ 
  ./src/gdcmHeaderHelper.cxx:         $Revision: 1.43 $ 
  ./src/gdcmJPEGFragment.cxx:         $Revision: 1.1 $ 
  ./src/gdcmJPEGFragmentsInfo.cxx:            $Revision: 1.4 $ 
  ./src/gdcmJpeg.cxx:         $Revision: 1.28 $ 
  ./src/gdcmJpeg12.cxx:       $Revision: 1.26 $ 
  ./src/gdcmJpeg16.cxx:       $Revision: 1.5 $ 
  ./src/gdcmJpeg2000.cxx:             $Revision: 1.13 $ 
  ./src/gdcmJpeg8.cxx:        $Revision: 1.11 $ 
  ./src/gdcmPixelConvert.cxx:         $Revision: 1.25 $ 
  ./src/gdcmRLEFrame.cxx:             $Revision: 1.1 $ 
  ./src/gdcmRLEFramesInfo.cxx:        $Revision: 1.3 $ 
  ./src/gdcmSQItem.cxx:       $Revision: 1.35 $ 
  ./src/gdcmSeqEntry.cxx:             $Revision: 1.34 $ 
  ./src/gdcmTS.cxx:           $Revision: 1.28 $ 
  ./src/gdcmUtil.cxx:         $Revision: 1.60 $ 
  ./src/gdcmVR.cxx:           $Revision: 1.22 $ 
  ./src/gdcmValEntry.cxx:             $Revision: 1.34 $


------------------------------------------------------------------------------


  _______________________________________________
  Dcmlib mailing list
  Dcmlib at creatis.insa-lyon.fr
  http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/dcmlib/attachments/20041110/8efb32e8/attachment.html>


More information about the Dcmlib mailing list