begin process at 2012 05 29 23:31:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

libpng


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

libpng

vendredi 12 novembre 2004 à 16:42:51 | libpng

cleptho

J'essaie de lire un png en utilisant la DLL officielle ainsi que celle de zlib, et j'ai apparament une erreur dans une fonction de la lib, un access violation. J'ai pourtant pris le code conseillé sur le site officiel, et j'en ai fais une classe...

voila le code

bool c_ImagePNG::LoadPNG(char path[]){
FILE *fp;
char buffer[PNG_BYTES_TO_CHECK];

try{
if (!(fp = fopen(path, "rb"))){
error = "Error: Problem opening [";
throw error;
}
if (fread(buffer, 1, PNG_BYTES_TO_CHECK, fp) != PNG_BYTES_TO_CHECK){
fclose(fp);
error = " Error: Problem reading [";
throw error;
}
// png_sig_cmp() checks the given PNG header and returns 0 if it could be the start of a PNG file.
if(png_sig_cmp((png_byte*)buffer, (png_size_t)0, PNG_BYTES_TO_CHECK)){
fclose(fp);
error = " Error: Invalid PNG [";
throw error;
}
png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if(!png_ptr){
fclose(fp);
error = " Error: Problem creating PNG read structure [";
throw error;
}
png_infop info_ptr = png_create_info_struct(png_ptr);
if(!info_ptr){
fclose(fp);
png_destroy_read_struct(&png_ptr, NULL, NULL);
error = " Error: Problem creating PNG info structure [";
throw error;
}
// Setup error handler
if (setjmp(png_jmpbuf(png_ptr))){
fclose(fp);
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
error = " Error: Problem setting PNG error handler [";
throw error;
}


png_init_io(png_ptr, fp);
png_set_sig_bytes(png_ptr, PNG_BYTES_TO_CHECK);
int png_transform = PNG_TRANSFORM_IDENTITY;
png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);

et ca plante dans le png_read_png()...
vous voyez une erreur? Vous avez des suggestions?
merci d'avance
lundi 15 novembre 2004 à 03:41:40 | Re : libpng

Essen

D'après ce que je peux lire en tapant "png_read_png" dans google, il y a une vulnérabilité dans cette fonction qui peut faire planter le programme suivant le png.
Ton code a pas l'air mauvais (bien qu'il soit tard et que je n'aies plus toutes mes capacités), donc ça peut venir du fait que tu utilises une version ancienne de la libpng et/ou que ton png est mauvais.
T'as essayé avec d'autres fichiers ?
lundi 15 novembre 2004 à 16:47:27 | Re : libpng

cleptho

merci!

J'ai recupere la derniere version de libpng(1.2.7) dans lequel le bug de securite dont tu parles a du etre corrige.
Et j'ai essayer avec plusieurs png de sources differentes, dont le site officiel, et malheureusement j'ai toujours un access violation.

J'en arrive a me demander si comme mon code est en C++, la fonction de la DLL n'arriverait pas a acceder a mes variables, mais a priori je les envoie en parametres, donc ca ne devrait pas etre un probleme...

Si quelqu'un voit une solution, qu'il n'hesite pas!
Merci d'avance


Cette discussion est classée dans : error, bytes, ptr, png, fp


Répondre à ce message

Sujets en rapport avec ce message

Lire une image PNG libpng [ par shub85 ] Bonjour, je voulais savoir si quelqu'un utilise libpng ou si il l'as utilisé. Je cherche à récupérer mes valeurs pixels d'une image 1280*960 , 16 bits PB avec libpng : png en niveau de gris sur 16 bits [ par ReDcRoWn ] Bonjour à tous,A l'aide de la libpng je cherche à écrire des images au format PNG en niveau de gris sur 16 bits (pas de transparence).1/ Je voudrais t Requetes serveur cs 1.6 [ par Mini92 ] En fait, j'essaye d'envoyer des requêtes sur mon serveur cs mais je n'obtiens aucun retour.Voilà le code si quelqu'un peu m'aider svp#include #include wxwidgets [ par jojomillenium ] Bonjour,Ca fait 2 jours que je galere a essayer d installer wxwidgets!Sachant que c'est la galere sur VS6, je veux utiliser CodeBlocks, j'ai suivi a l [Visual C++ 6] Connecxion ODBC [ par kharrat ] Salut,Je travaille sous VC++ 6.J'essaie d'écrire un prog tout simple pour m'entraîner à utiliser des bases de données.Pour ce faire, je souhaite utili Allocation memoire : malloc ou pas malloc dans ce cas ci ... [ par AsM0DeUz ] Bonjour,Je voudrais remplir un tableau avec le contenu d'un fichier texte avec le code ci-dessous : #define MaxBoardSize 10int main(){    char boa Enumération incomplète avec RegEnumKeyEx [ par Taron31 ] Bonjour, dans un programme je dois énumérer toutes les clefs de HKEY_CURRENT_USER, j'ouvre donc cette clef, je récupère le nombre de subkeys (RegQuery error C2143 [ par IH2MCBETA ] 1>c:\users\richard\documents\visual studio 2005\ih2mc\parameters.h(15) : error C2143: erreur de syntaxe : absence de ';' avant '*'1>c:\users\richard\d comment ajouter un .lib a son projet? [ par LaTatadu91 ] Bonjour,voila mon probleme, j'utilise actuellement des fonctions d'une librairie pour OPCet mon compilateur (visual studio 2005) me dit :error LNK2019 help au namespace [ par sam_45 ] Bonjour à tous,Je suis entrains de developper mon premier logiciel en  C++.net où suis debutant. J'ai un problème avec le namespace. je n'arrive pas à


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,306 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales