One of the most interesting examples of a software "abuse case" came to me rather abruptly on an airplane flight from Las Vegas to Orlando in mid 2005.
Each seat in the airplane had a small touch screen monitor built into the head rest of the chair in front, and on this particular airline, passengers could watch a variety of television channels and play a few simple games. One such game looked remarkably similar to the classic strategy game Tetris, where players use their skills to manipulate falling blocks on a screen to try and form horizontal lines. I'm a big fan of Tetris; for a few months in 1998 I was borderline obsessed with it. I would start looking at everyday objects and start mentally fitting them together with other tings in the room to form weird line configurations. One of the options on this particular airborne version of Tetris was to alter the number of blocks one could see in advance on the screen before they started falling.
To give myself the biggest advantage in the game, I pressed the + control as many times as it would allow and got to the maximum value of 4. I then put on my "bad guy" hat on and asked: How *else* can I change the value in this field? Near my armrest was a small phone console; you know, the one where you can make very important calls for a mere $22 per minute. I noticed that the phone had a numeric keypad and that it also controlled this television monitor embedded in the seat in front of me.
I then touched the screen in front of me to highlight the number "4" in the options configuration shown in Figure 1. I tried to enter the number 10 into that field through the phone keypad with no luck: it first changed to the number "1" followed by the number "0". Frustrated, I then made the assumption that it would only accept single digit values. My next test case was the number "8"; no luck there either, the number didn't change at all. I then tried the number 5: success! '5' is an interesting test case, it's a "boundary value" just beyond the maximum allowed value of the field which was '4'. A classic programming mistake is to be off by 1 when coding constraints. For example, the programmer may have intended to code the statements:
0 < value < 5
When what actually got coded was
0 < value <= 5
I now had the software exactly where I wanted it, in an unintended state; the illegal value 5 was now in my target field. I then turn my attention back to the screen and hit the + button which, to my complete surprise, incremented the value to 6! Again, an implementation problem, the increment constrain probably said something like "if value = 4 do not increment." In this case, the value wasn't 4 but 5 so it happily incremented it to 6! I then continue to increment the value by pressing the + button until I get to 127 and then I pause for a moment of reflection. 127 is a very special number; it is the upper bound of a 1 byte signed integer. Strange things can happen when we add 1 to this value, namely that 127 + 1 = -128! I considered this for a moment as I kicked back a small bag of peanuts and in the interest of science I boldly pressed the + button once more. Suddenly, the display now flashes -128 just for an instant and then poof...screen goes black.
Poof...screen of the person next to me goes black.
Screens in front of me and behind me go black.
The entire plane entertainment system goes down (and thankfully the cascading system failure didn't spill over to the plane navigation system)!
After a few minutes of mumbling from some of the passengers, a fairly emotionless flight attendant reset the system and all was well. I landed with a new-found respect for the game of Tetris and consider this to be the most entertaining version of it I have ever played.






as an airplane avionics technician, i can tell you that any and all navigation and control electronics are totally isolated into themselves. anything that can work on it's own, does, and anything that needs to share info does it through solid hard-wiring. There are common data busses to reduce weight from too much wiring, but again, totally isolated. Airlines know better than to link everything together in a network. Also, it's not like airplanes are running Windows 98 on an Alienware tower from Best Buy, it's all operation specific hardware and software. and as for Swiss Air 111, that was capton wiring if i recall correctly, which caused a lot of big problems after a few years of wear, and is still in the process of being phased out by the lesser airlines.
I flew over 100K miles last year, including segments on United, American, Continental, Northwest, Aloha, Hawaiian, go!, Air France, KLM, ANA, RyanAir, EasyJet, Kenyan and China Southern. I've seen a LOT of IFE systems.
I don't think Windows CE counts as "operation specific" software.
On 12-hour redeyes it's fun to walk around a widebody while everyone's sleeping, and see how many of the seatback screens are going through the boot process at any given time. :)
That's a heavy carbon count you are leaving behind there, chum. You might want to think about cutting back on all that flying. In fact, be a good chap and try to stay put for a while, please.
Global warming is a political device to keep us in control. Shut up and stick to buying hybrids ya hippie. Oh, and hurry up and die, you're wasting my precious oxygen.
Give us a break, eh?
Like Uncle AlGORE, he probably buys offsets. Therefore, I guess, the carbon just disappears!
Amazing!
What a DB...
So it's crappy coding.
I crashed my console on a Virgin Atlantic flight in 2002. Same idea, a crappy little 5" screen in the seat back. I kept trying different movies and menus (to see what range of entertainment was available). At a certain point it froze, then after a minute a boot sequence text appeared and then a little peguin picture in the upper left. Then the menu reloaded.
Problem was 400 passengers trying to dump a different DIVX movie at 10Mbps (I'm guessing) from the central server at the same time once the entertainment system was turned on. The flight attendants even announced to please be patient, it will be slow in the beginning. Once everyone had picked the show or game they wanted, response time was pretty good.
So I'll agree with the original article. It's probably a standalone server and network to separate terminals/PC's. Nothing to do with the flight systems, any more than your minivan's DVD player is hooked into the motor control unit.
"any more than your minivan's DVD player is hooked into the motor control unit."
Careful, those two are actually tied together. Cars are becoming increasingly centralized, with nearly all vehicle systems being controlled by the PCM.
Let me say it once: NO WAY. I work in automotive, and if nothing else I can tell you that a Powertrain engineer has NOTHING to do with anything but Powertrain (and for those that don't know, PCM=Powertrain Control Module). The PCM might give and get information over a network from some other modules, but it is a far cry from controlling anything but the engine and trans.
For the particular company at which I work, entertainment and other noncritical items are on a network and they are highly regulated by a gateway module as to whether they are allowed to send anything to the network that the PCM is on. A centralized module does exist for noncritical features on the non-PCM network but it cannot affect the safe operation of the vehicle. e.g. it can't interfere with cluster dials or accel pedal position information or power steering.
BMW's iDrive caused quite a few issues with randomly locking doors, etc. but it never compromised critical functions (that I'm aware of).
Nevermind the possibility that an overzealous federal air marshall might arrest you for "tampering with an airplane," cool hacks like this on other people's computers may violate laws in various countries.
Don't be surprised if someone at the airline sees this, remembers the incident report, tracks you to that plane, and sues you or sends the cops after you. Hopefully they'll be sane enough to realize it would be a PR disaster but you never know.
Seems the real culprit looks more like the supplier of these game consoles and the particular installation. This supplier would be the natural place to go for arrests.
Software warranties?