Av-en- feil

I databehandling er en feil av typen off-by-one ( OBOE , "unit shift error") en logisk feil  (in) som antyder den diskrete ekvivalenten til et problem på grensene . Hun vises regelmessig i programmering når loop s ' itererer for mye eller for lite. Så feilen kan oppstå når en programmerer gjør feil som å bruke kommandoen "mindre enn eller lik" på et sted der han burde ha brukt "mindre enn" i stedet. Feilen kan også oppstå når han glemmer at en serie starter på null i stedet for 1.

IT-sikkerhet

En typisk off-by-one feil i datasikkerhet er forårsaket av feil administrasjon av rutinen strncat . En utbredt misforståelse av strncater at garantert nulloppsigelse ikke vil skrives utover maksimal lengde. Faktisk vil kommandoen skrive et nulltegn en byte utover den angitte maksimale lengden.

Eksempel på en off-by-one feil med strncat

void foo (char *s) { char buf[15]; memset(buf, 0, sizeof(buf)); strncat(buf, s, sizeof(buf)); // Le paramètre final devrait être : sizeof(buf)-1 return; }

Matematikkeksempel

Formelen til den geometriske serien er skrevet

En "off-by-one" feil ville være å skrive

fordi denne siste serien begynner med begrepet .

Merknader og referanser

(fr) Denne artikkelen er helt eller delvis hentet fra Wikipedia-artikkelen på engelsk med tittelen Off-by-one error  " ( se listen over forfattere ) .
  1. (in) Edsger Wybe Dijkstra , "  Why shoulds start nummering at zero (EWD 831)  " , EW Dijkstra Archive, University of Texas i Austin ,2. mai 2008

Se også

Relaterte artikler

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">