Savoir si un buffer est alloué

sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 - 21 déc. 2003 à 19:35
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 - 21 déc. 2003 à 21:42
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

sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
21 déc. 2003 à 19:39
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] -- */
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 déc. 2003 à 20:12
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...
0
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
21 déc. 2003 à 21:02
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] -- */
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 déc. 2003 à 21:10
Regarde comment fait l'api Windows, quand elle demande un buffer, il y a aussi le parametre lenbuffer.
Tu imites.
BruNews, ciao...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
21 déc. 2003 à 21:23
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] -- */
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 déc. 2003 à 21:34
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...
0
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
21 déc. 2003 à 21:42
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] -- */
0
Rejoignez-nous