Så här uppstod buggen som förhindrade nödsamtal

Postat:
10:54 - 2021-12-13
Skribent:
Lars A
Kommentarer:
13

Förra veckan uppdagades en allvarlig bugg i Android som kan göra att det inte går att ringa nödsamtal. Microsoft Teams var katalysatorn men Google kan anses bära det största ansvaret.

Inget på telefonen bör nämligen kunna inverka på en så viktig och grundläggande del som nödsamtal. En uppdatering av Microsoft Teams som åtgärdar problemet är på väg ut nu, medan Android i bästa fall får en buggfix i början av januari. Hur gick det då till?

Ett inlägg på Medium av Mishaal Rahman går grundligt igenom hur buggen som blockerade nödsamtal uppstod. Inlägget är komplicerat och fullt av tekniska detaljer. I korthet sägs att alla appar som kan ringa samtal registreras av systemet. De skapar en instans av klassen PhoneAccount.

Ifall användaren inte hade loggat in i appen skapade Microsoft Team en ny instans av PhoneAccount varje gång appen startades, något som ska ha resulterat i ett ”integer overflow/underflow” när användaren försökte ringa ett nödsamtal.

Hela genomgången går att läsa här.

But what if there were potentially dozens of duplicate PhoneAccount instances for this method to sort through? If that’s the case, then the chances of an integer overflow/underflow triggering go up.

Even without analyzing the decompiled code of the Microsoft Teams app, it’s easy to confirm that there’s a bug in the app that results in the excessive registration of PhoneAccount instances. Whenever the Microsoft Teams app is installed but the user has not signed in, every cold launch of the app results in the creation of another PhoneAccount instance.