[MFC] Crash dans CString::FormatV

Crash dans CString::FormatV [MFC] - C++ - Programmation

Marsh Posté le 12-06-2007 à 10:51:57    

Code :
  1. void UserMethod(LPCTSTR lpszText)
  2. {
  3. WriteMessage(lpszText);
  4. }
  5. void WriteMessage(LPCTSTR lpszText, ...)
  6. {
  7. va_list argl;
  8. va_start(argl, lpszText);
  9. CString csText = _T("" );
  10. csText.FormatV(lpszText, argl);
  11. va_end(argl);
  12. }


 
Ce code crash avec des valeurs particulières de lpszText. Mais je n'ai pas encore identifié la différence.
 
Quelqu'un connaît le problème ?
 
J'ai bien pris connaissance de cette attaque : https://buildsecurityin.us-cert.gov/daisy/bsi/730.pdf
Mais je ne crois pas que ce soit en rapport avec mon problème.


Message édité par slash33 le 12-06-2007 à 10:57:16
Reply

Marsh Posté le 12-06-2007 à 10:51:57   

Reply

Marsh Posté le 12-06-2007 à 11:15:57    

Bon alors en fait il suffit de faire un appel

Code :
  1. WriteMessage("%s" );


pour que les MFC explosent
 
Par contre

Code :
  1. WriteMessage("%d" );


n'explose pas.


Message édité par slash33 le 12-06-2007 à 11:16:50
Reply

Marsh Posté le 12-06-2007 à 12:43:21    

Bon.
 
Il faut écrire WriteMessage("%s", csString);
 
Les écritures précédentes provoquent un dépassement de pile...


Message édité par slash33 le 12-06-2007 à 12:44:06
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed