Ett enkelt tegn skapte IE-hull

Ett enkelt tegn skapte IE-hull

Det er en feilplassert "&" i koden som sørget for at Microsoft tirsdag måtte rykke ut med lappesaker.

Feilen som gjorde at Microsoft nødlappet et sikkerhetshull utenfor den faste lappetirsdagsrytmen, ble forårsaket av en feilplassert "&" i koden, innrømmer Microsoft i en blogg.

En bestyrer for Microsoft sikkerhetsprogram, Michael Howard, forklarer at tabben korrupterte koden i en ActiveX-kontroll brukt av nettleseren Internet Explorer (IE). Kontrolleren ble skapt av Microsoft i et eldre kodebilbiotek, som Howard innrømmer har feil, melder Cnet.

Også i Visual Studio

Hullet ble lappet tirsdag denne uka.

Utviklerverktøy som Microsofts Visual Studio har støttet seg på samme kodebibliotek, Active Template Library, og dette programmet ble derfor også lappet sammen.

Kodegåte

Ifølge Howard er det vanskelig å oppdage en slik tabbe i gjennomgangen av koden.

For å eksemplifisere dette har han laget en rekke linjer kode i bloggen, hvor han oppfordrer leserne til å finne en feil.

__int64 cbSize;

hr = pStream->Read((void*) &cbSize, sizeof(cbSize), NULL);

BYTE *pbArray;

HRESULT hr = SafeArrayAccessData(psa, reinterpret_cast(&pbArray));

hr = pStream->Read((void*)&pbArray, (ULONG)cbSize, NULL);

Han hinter om at det er snakk om nok en skriveleif.

Løsningen på gåten kan du se på artikkelens neste side.

For å forebygge tilsvarende feil vil Microsoft ifølge Howard rydde opp i kodeprosessen og oppdatere verktøyene de bruker for å lete etter slike feil. I tillegg må kodere fremover lene seg på det nye ATL-biblioteket.

Utvikling