Re: optimisation vs securite
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.c ]
Sujet: Re: optimisation vs securite
De: vincent+n...@vinc17.org (Vincent Lefevre)
Groupes: fr.comp.lang.c
Organisation: a training zoo
Date: 07. May 2008, 13:47:13
References: 1
|
Dans l'article <48f8f5-cvo.ln1@prout.stex>,
Thierry B. <tth@prout.stex.invalid> écrit:
> En me promenant dans le grand ouèbe mondial, je suis tombé sur
> cet article: http://lwn.net/Articles/278137/ qui évoque des
> problèmes de potentiels buffer-overflow quand Gcc (et d'autres)
> optimisent un peu trop sur certaines condition/tests.
Je ne pense pas que "This behavior is allowed by the C standard,
which states that, in a correct program, pointer addition will not
yield a pointer value outside of the same object." soit correct,
surtout que cette phrase ne précise pas de quel objet il s'agit.
Par exemple, je pense que le programme suivant est correct bien
que l'on sorte de l'objet v.b, puisqu'on est aussi dans l'objet v,
qui peut être assimilé à un tableau de caractères:
#include <stdio.h>
int main (void)
{
struct { char a[8], b[8]; } v;
char *p;
p = &v.b[0];
printf ("%p\n", (void *) p);
p--;
printf ("%p\n", (void *) p);
return 0;
}
En revanche, l'optimisation vient du fait que si on ajoute un nombre
positif ou nul à un pointeur, on ne peut pas se retrouver avec un
pointeur plus petit.
--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|