10
votes

Dépassement de tampon de tampon tampon de dépassement de tampon (vs)

Duplicaté possible:

Quelle est la différence entre un débordement de pile et un tampon Overflow?

Quelle est la différence entre le débordement tampon et le dépassement tampon?

Quelle est la différence entre le dépassement de tampon et le débordement de pile?

Veuillez inclure des exemples de code. J'ai examiné les termes de Wikipedia, mais je suis incapable de faire correspondre avec la programmation en C ou C ++ ou Java.


7 commentaires

Wikipedia indique clairement que le dépassement de tampon et le débordement de la mémoire tampon sont des synonymes. Ainsi, votre question est une dupe de votre propre question à Stackoverflow.com/questions/1120575


Cette quête peut être réalisable comme juste quelle est la différence entre le débordement tampon et le dépassement de la mémoire tampon (A: ils sont des synonymes du même concept). Aucune raison de laisser Wikipedia être la source au lieu de cela.


Un dépassement de tampon est l'une des sources les plus courantes de risque de sécurité. Un dépassement de tampon est essentiellement causé par le traitement d'une entrée externe non cochée en tant que données de confiance.


msdn.microsoft.com/en-us/library/ms717795 (Vs.85) .aspx


@Kirsh, c'est ce qu'est un débordement tampon.


Dupliquer de Stackoverflow.com/questions/1120575


L'autre question ne résout pas la distinction entre le dépassement de la mémoire tampon et le débordement, ce n'est donc pas un duplicata. J'ai voté pour Réouverture @stevekuo


4 Réponses :


18
votes

BufferOverflow / BufferOverRun:

void f()
{
     int k = 0;
     f();
}


1 commentaires

J'ai trouvé du code pour la course tampon .. Qu'est-ce que c'est vraiment faire?



36
votes

Pensez à un tampon comme un tableau. Les gens utilisent souvent des «débordements» et «dépassés» interchangeables pour chaque fois que vous essayez de faire référence à un index au-delà de la fin de la matrice, et c'est bien. Personnellement, je fais une distinction:

Un dépassement de tampon est lorsque vous essayez de mettre plus d'éléments dans la matrice que le tableau ne peut contenir. Ils découlent de la fin du tampon. En d'autres termes, il vient de écrit .

Un dépassement tampon est lorsque vous êtes itération sur le tampon et continuez à lire après la fin de la matrice. Votre itérateur fonctionne dans le tampon et continue. En d'autres termes, il vient de lecture .

Un dépassement de pile est beaucoup différent. Les environnements de programmation les plus modernes sont basés sur la pile, où ils utilisent une structure de données de pile pour contrôler le flux de programmes. Chaque fois que vous appelez une fonction, un nouvel élément est placé sur la pile d'appels du programme. Lorsque la fonction renvoie, l'élément est apparu de la pile. Lorsque la pile est vide, le programme s'arrête. La chose est, cette pile a une taille limitée. Il est possible d'appeler trop de fonctions à la fois et de remplir la pile. À ce stade, vous avez un débordement de pile. Le moyen le plus courant de faire est quand une fonction s'appelle elle-même (récursivité).


6 commentaires

"Un tampon dépassant [...] vient de la lecture" - source?


Aimerait vérifier cette source pour la même citation que @Paul


@Enderthevoid Ceci est très vieux, mais revenez et lisez mes deuxième et troisième phrases très soigneusement.


Vous voulez dire par cela est une distinction personnelle subjective du tien?


@Enderthevoid Oui, mais une personne semble être d'accord avec.


Dessinez mon attention de retour ici aujourd'hui, j'ai choisi de faire quelques petites modifications, dont l'accent sur la nature "personnelle" un peu.



0
votes

Quelle est la différence entre le débordement tampon et le dépassement tampon? Je dirais que le tampon sur débit est lorsque vous essayez d'écrire au-delà de la fin d'un tampon, mais vous avez un chèque qui l'empêche. Tampon Over Run est lorsque vous écrivez réellement au-delà de la fin du tampon. Le premier est en échec rapide, la seconde est plus difficile à détecter.

Vous ne pouvez pas dépasser un tampon en Java car il a toujours des limites de la vérification et produit ainsi une bufferoverflowexception.

Quelle est la différence entre le dépassement de tampon et le débordement de pile?

Ils n'ont rien à voir les uns avec les autres.


0 commentaires

1
votes

Vous pouvez avoir la différence entre le débordement de la mémoire tampon et le dépassement tampon en C / C ++:

  • Nous pourrions définir un débordement lorsque vous indexez / pointez au-delà de la taille de la mémoire tampon d'origine (E.G Lisez le 6ème élément d'un réseau de 3 éléments)
  • Nous pourrions définir le dépassement lorsque vous avez plusieurs tampons adjacents après l'autre et que vous vous indiquez dans la seconde (par exemple, lisez le 6ème élément du premier réseau à 3 éléments, mais vous obtenez le 3ème élément du deuxième réseau de 3 éléments. ).

    Overflow de pile est un peu tampon de tampon lorsque vous remplissez votre «tampon mémoire» de votre pile entière.


0 commentaires