Savoir si un buffer est alloué

Signaler
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
-
sebastienbro
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
-
Bonjour,

Je voudrais savoir comment je pourrais déterminer si un buffer est déjà allouée, pour pouvoir par exemple, l'allouer.

Merci d'avance

Bye

\* -- Seb [[mailto:seb_winux@hotmail.com Mail]] [Web] -- */

7 réponses

Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004

J'ai oublié quelque chose aussi :

je voudrais savoir, s'il a été allouée, l'espace mémoire allouée, pour éviter les buffer overflow ou les erreurs.

Merci

bye

\* -- Seb [[mailto:seb_winux@hotmail.com Mail]] [Web] -- */
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
18
BYTE *pmem = 0;
if(pmem) EST ALLOUE

Si tu n'as pas de taille fixe d'allocation, tu mets dans des variables pour retrouver ensuite.
BruNews, ciao...
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004

D'accord merci beaucoup, mais en fait, c'est pour une dll, donc imaginons que celui qui passe le buffer l'alloue de 10, et passe comme variable 100, comment je peux éviter que tout plante (c'est pour des chaines)

Bye

\* -- Seb [[mailto:seb_winux@hotmail.com Mail]] [Web] -- */
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
18
Regarde comment fait l'api Windows, quand elle demande un buffer, il y a aussi le parametre lenbuffer.
Tu imites.
BruNews, ciao...
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004

Oui je l'ai déjà fait, mais imaginons que le buffer est été allouée de 10 :

char *var;

var = (char *) malloc(10);

et que le paramètre lenbuffer passé soit 100.

Comment détecter cette erreur ?

\* -- Seb [[mailto:seb_winux@hotmail.com Mail]] [Web] -- */
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
18
En ce cas on plante et c'est normal, une fonction exportee par une DLL l'est generalement pour des developpeurs que l'on presume responsables.
BruNews, ciao...
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004

Très merci, je voulais juste savoir si c'était possible d'éviter ça!

Merci beaucoup, et désolé de t'avoir fait perdre ton temps!

Bye !

\* -- Seb [[mailto:seb_winux@hotmail.com Mail]] [Web] -- */