Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

cancel ×

322 comments

Err (1, Insightful)

OverlordQ (264228) | more than 7 years ago | (#18092444)

Fortunately the IFE system is totally disjoint from the avionics.

No offense, but I don't think avionics are your run of the mill programmers.

Re:Err (1)

Stewie241 (1035724) | more than 7 years ago | (#18092474)

hmmmm... really 'cool'... I bet the other passengers on the plane didn't find it so... Ian

Re:Err (4, Informative)

Anonymous Coward | more than 7 years ago | (#18092918)

TFA

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.

.

Re:Err (5, Interesting)

iocat (572367) | more than 7 years ago | (#18093072)

It sounds good. Too good in fact. In fact, it sounds like BS. It basically reads like an urban myth. Also, given that the max value was 4, its unlikely the field size onscreen would have been big enough to display a 3 digit number. I also can't think of any domestic carrier in 2005 that had a combo touch screen / telephone thingee in the back of every seat. The only one I can think of now is Thai in their Royal Thai section.

Can anyone intuit the airline? Because without an airline name, I call bullshit on this story. I would guess it had to be business class, and probably a foriegn carrier, if the story is to be believed.

Last time I checked (0)

Anonymous Coward | more than 7 years ago | (#18092510)

Avionics aren't programmers at all. Or even people. Or living things.

Re:Err (4, Funny)

iluvcapra (782887) | more than 7 years ago | (#18092554)

Well, gee. I hope that that little map of the Atlantic Ocean with my plane superimposed on it only has read privileges on /dev/autopilot :).

Re:Err (0)

Anonymous Coward | more than 7 years ago | (#18092604)

It has read privs on /dev/movingmap and /dev/gps, and no access to /dev/autopilot. And if they had a clue, they'd be chrooting it all.

Screw all that, though. I want execute privs on /dev/pizza. Now that would be an in-flight meal...

Re:Err (3, Funny)

Harmonious Botch (921977) | more than 7 years ago | (#18092606)

Well, gee. I hope that that little map of the Atlantic Ocean with my plane superimposed on it only has read privileges on /dev/autopilot :).
Load a copy of flight simulator, and find out for sure.

Re:Err (5, Informative)

dxlts (1037812) | more than 7 years ago | (#18092622)

No offense, but I don't think avionics are your run of the mill programmers
I assume you meant "avionics programmers" aren't run of the mill. I hate to burst your bubble, but for the most part that's not true. I've been a programmer in the aerospace industry for 10 years. Seven of those years were at Boeing, doing (among other things) avionics programming. Unfortunately, from what I saw, avionics programmers for the most part are no smarter than your average programmer. There are a handful of really smart guys who do all the really hard (and high risk) parts of the code, and the remaining 99% of the programmers do the kind of simple, tedious code that you could (almost) train monkeys to do. Not surprisingly, most of them really aren't all that smart. I understand how you might have that misconception though. I used to have that misconception too. I remember when I got my first aerospace job, and I was really intimidated by the fact that I was going to be working with the "big dogs", the hardcore programmers who all had 180 IQ's, etc. I also remember the total shock and disappointment when it turned out to be just the opposite.

Re:Err (0, Offtopic)

Hektor_Troy (262592) | more than 7 years ago | (#18092948)

I was going to be working with the "big dogs", the hardcore programmers who all had 180 IQ's, etc. I also remember the total shock and disappointment when it turned out to be just the opposite.
What's the oposite of a 180 IQ? An 018 QI?

Re:Err (4, Funny)

Bronster (13157) | more than 7 years ago | (#18093002)

Well, in your case it's obviously not even an 081 IQ or you would have mastered simple string reversal...

Re:Err (4, Insightful)

ikkonoishi (674762) | more than 7 years ago | (#18093014)

20.

Since 100 is an average IQ then the opposite of a number 80 points above average would be a number 80 points below average.

Re:Err (1)

evilviper (135110) | more than 7 years ago | (#18093138)

I assume you meant "avionics programmers" aren't run of the mill. I hate to burst your bubble, but for the most part that's not true. I've been a programmer in the aerospace industry for 10 years.

Ergo, true, ipso facto. Q.E.D.

Well done.

Re:Err (5, Informative)

colfer (619105) | more than 7 years ago | (#18092658)

SwissAir 111 went down because the in-flight entertainment & gambling system had been rushed into service, and due to its design overheated and burned down the plane in-flight. This was its design: a separate computer for each seat. The computers (presumably single cards) were located in the ceiling near the front of the passenger compartment. So were the avionics wires. The entertainment/gambling devices overheated, caught fire and the plane crashed near Nova Scotia. Greed. SwissAir is no more.

Re:Err (1)

colfer (619105) | more than 7 years ago | (#18092668)

Come to think of it, I think each computer may have had its own power supply, but I'm not sure.

Re:Err (3, Interesting)

inviolet (797804) | more than 7 years ago | (#18092872)

Interesting. I went to swissair111.org [swissair111.org] and read up on the incident. They are now reporting that "MICHAIL ITKIS, CEO OF INTERACTIVE FLIGHT TECHNOLOGY CHANGES NAME TO MIKE SNOW". So apparently we need an extra step in the old cliche:

  1. Create fly-by-night company to produce in-flight entertainment systems.
  2. Rush the product to market prematurely.
  3. Organize an IPO.
  4. Profit !!
  5. Observe the product causing airplanes to crash and burn.
  6. Change name and move away.

Avionics programmers (5, Informative)

Okian Warrior (537106) | more than 7 years ago | (#18092690)

Okay, I *am* an avionics programmer. Here's some background.

FAA regulations categorize software in 5 different levels of criticality, depending on how a failure of the software would affect the safety of the plane. Level "A" software is reserved for things like the "low fuel" alarm, which could potentially knock the plane out of the air on failure, to level "C" for things like the cabin pressurization system where the pilots can take emergency actions to compensate, to level "E" for things like the microwave in the kitchen.

(Beware: I gloss over a few details for clarity.)

The higher levels of software criticality have progressively higher levels of standards for testing. In the case of level-A software, each individual line of code must be examined for correctness in the context of the rest of the code. Each line of code must be executed as part of testing and actively shown to be correct, and each line of code must be individually code reviewed by another engineer.

At the higher levels of software, limit testing is required for all function arguments and if-statements. Multiple-clause if statements such as "if A and B but not C" must be tested for all combinations of the subject clauses, and so on.

In addition to this, all avionics software I've worked on makes a distinction between showing erroneous information and showing *no* information (or, working incorrectly versus not working at all). If the digital altimeter goes blank, the pilots will notice and can take corrective action. If the altimeter is reading the wrong information, then that's a critical failure which could cause an accident.

Thus, avionics software innards are heavily checked throughout execution to ensure proper operation, and any failure causes the system to immediately go offline. All function arguments are ASSERT'ed for correct range, all calculations are checked for range and accuracy, &c.

The entertainment system, and in particular a game within the entertainment system, is almost certainly a level-E software component, and so is not required to go through such rigorous testing. The hardware has to be shown to not interfere with the avionics and that's about it.

Re:Err (1)

notoriousfcp (1066692) | more than 7 years ago | (#18092866)

Unfortunately, even if the IFE isn't connected to the avionics, bad things can still happen. *Very* bad things. I managed a project a few years back to design and build the front end to an existing IFE hardware system. The front end was really cool - multiplayer games, gambling, the usual movies and music, in-flight commerce, and much more, wrapped in a gorgeous and highly usable UI. Almost 10 years later, the IFE systems deployed today aren't much better, and in many cases are a lot worse, which surprises me. If I recall correctly, though, the hardware folks (a completely separate company) installed the hardware into the aircraft in a less-than-ideal way, and it ended up causing a fire that brought down the aircraft. D'oh.

Slashdotted already? (1)

JaySSSS (859968) | more than 7 years ago | (#18092468)

Unable to connect to database server

This either means that the username and password information in your settings.php file is incorrect or we can't contact the MySQL database server. This could mean your hosting provider's database server is down.

The MySQL error was: Too many connections.

Currently, the username is blogscio and the database server is localhost.

Are you sure you have the correct username and password?
Are you sure that you have typed the correct hostname?
Are you sure that the database server is running?
For more help, see the Installation and upgrading handbook. If you are unsure what these terms mean you should probably contact your hosting provider.

Re:Slashdotted already? (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092488)

How to crash an in-flight entertainment system Submitted by Hugh Thompson on Fri, 2007-02-09 16:08. Topic(s): | Information Security 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.

Re:Slashdotted already? (0)

Anonymous Coward | more than 7 years ago | (#18092784)

Okay, look down at your keyboard. Just to the right of the key labeled ' and " if you're using US QWERTY, the - and _ key if you're using Dvorak, and some other key if you're elsewhere there is a abnormally large key. It probably has the letters "Enter" on it, along with an arrow that points left. If you press that key, it inserts blank lines. To wit, I will press "Enter" twice now:

See? The text is now further down than it was before, and there is empty space. If you insert these spaces every so often, it breaks the text into regions known as "paragraphs" that make it easier to read.

Re:Slashdotted already? (1)

icepick72 (834363) | more than 7 years ago | (#18092494)

Okay, I followed these instructions. Now what?

Re:Slashdotted already? (3, Funny)

f_raze13 (982309) | more than 7 years ago | (#18092532)

The real title: How to crash a personal blog Summary: Post a link to it on /.

Re:Slashdotted already? (5, Funny)

linuxmop (37039) | more than 7 years ago | (#18092556)

So an article about hacking into insecure software is hosted on a site that displays information about its internals whenever there's high load... Fantastic.

Re:Slashdotted already? (1)

Bob54321 (911744) | more than 7 years ago | (#18092910)

This was the case about 1 hour before it actually appeared on Slashdot. I was voting in the Firehose section and could not read the article.

Looks like the airline got their own back. (4, Funny)

LighterShadeOfBlack (1011407) | more than 7 years ago | (#18092472)

TFA:

Unable to connect to database server

Slashdotted.... (0)

Anonymous Coward | more than 7 years ago | (#18092476)

after 1 comment.

Slashdotted Already (1)

quanticle (843097) | more than 7 years ago | (#18092484)

No replies and its already Slashdotted. And I thought nobody RTFAs.

Re:Slashdotted Already (2, Insightful)

Anonymous Coward | more than 7 years ago | (#18092838)

Ooh... so close. There are people that read slashdot articles. There are also people that post to slashdot discussions. I'll simply leave it as an exercise to the reader to figure out what the intersection of those two groups is.

But seriously, those who generally read the article have less of a chance of getting a post higher up in the discussion that those who just jump in (Whether they jump in due to a high level of comfort in the subject, or sheer bravado.) This means that people who post early are more likely to have their post read. They are also much more likely to get a response, as there are people who want to use advantage of the nested system and get their post to show up higher on the page. Also, early posts are generally highly moderated, which I guess can be sort of a thrill to some people. So, the system is self reinforcing. Bringing trolls into the mix greatly amplifies the situation, especially FP! trolls.

Profit? (5, Funny)

delirium of disorder (701392) | more than 7 years ago | (#18092490)

0. Install wireless NIC to In-Flight Entertainment System
1. Connect to wireless WAN and Internet
2. Install web server and post link to slashdot
3. Short sell airline stock
4. ???
5. Profit!

Re:Profit? (3, Insightful)

Burning1 (204959) | more than 7 years ago | (#18092978)

Holy crapshit. I think you've found the missing "???."

1. Steal underpants.
2. Short sell fruit of the loom stock.
3. Profit!

Long? (3, Insightful)

LFS.Morpheus (596173) | more than 7 years ago | (#18093132)

Wouldn't you want to buy Fruit of the Loom, since the victims will have to buy new underpants?

Re:Profit? (1)

c_forq (924234) | more than 7 years ago | (#18093146)

Wouldn't it be the opposite? I think that the correct choice would be to buy stock, at least I hope people would buy new underwear instead of abandoning the idea.

I've done this (1)

mastercylender (759770) | more than 7 years ago | (#18092500)

About 4 years ago I was on a flight from London to Shanghai on Virgin Atlantic. They had the super cool, million chanels of stuff, pause, rewind, play games with people in other seats, send SMS and e-mail system in the plane. I did something that caused it to crash and eventually it rebooted. When it rebooted it was obvously some sort of Linux system. So, it happens... just FYI

Slashdotted (-1)

SEMW (967629) | more than 7 years ago | (#18092502)

TFA:

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.

There is a NAME for the bug... (4, Informative)

UnknownSoldier (67820) | more than 7 years ago | (#18092636)

It's called a 'fencepost [wikipedia.org] ' bug, or 'off-by-one [wikipedia.org] ' bug.

Dam lazy programmers not using Assert() these days... :)

(And yes, I am one, programmer that is, not lazy :)

Re:There is a NAME for the bug... (5, Interesting)

AndroidCat (229562) | more than 7 years ago | (#18092972)

And when you compile the code in release, where is your friend now?

Re:There is a NAME for the bug... (5, Insightful)

RAMMS+EIN (578166) | more than 7 years ago | (#18093066)

``Dam lazy programmers not using Assert() these days... :)''

Because we all know that the constraint that you got wrong in the actual code will be correct in the assert. Right? Right?!

Re:There is a NAME for the bug... (1)

ArsenneLupin (766289) | more than 7 years ago | (#18093122)

``Dam lazy programmers not using Assert() these days... :)''

Because we all know that the constraint that you got wrong in the actual code will be correct in the assert. Right? Right?!
Moreover, an assert would not have fixed this particular problem. The purpose of an assert is to highlight errors by making the code crash right away as soon as an unexpected condition arises, rather than dragging the error condition along, and only crash much later. In our case, this would have made the screens blank as soon as he pressed 5...

Here's the REAL article text. (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092992)

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, LOL.

Re:Slashdotted (1)

Pugzilla (946437) | more than 7 years ago | (#18093110)

FBI most wanted 1.OBL 2.Irrational #'s

Article (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092508)

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.

Tooth-paste. (0)

Anonymous Coward | more than 7 years ago | (#18092516)

"Hugh Thompson, who was interviewed by Slashdot on the dangers of e-voting, now has a cool blog entry on how he was able to bring down the gaming/movie console on an airplane. He calls it one of the most interesting examples of a software 'abuse case' he has ever seen."

It was also one of the most violent episodes to happen on a plane when angry, tired (and trapped) passengers beat a hacker senseless.

Re:Tooth-paste. (0, Troll)

McFadden (809368) | more than 7 years ago | (#18092724)

Good for them if they did. Annoying little prick.

Re:Tooth-paste. (0)

Anonymous Coward | more than 7 years ago | (#18092850)

Wow, asshole much?

I once crashed a bowling alley.... (2, Insightful)

eggoeater (704775) | more than 7 years ago | (#18092520)

No kidding... It was in the late 80s on a new electronic scoring system they had just installed.
I made a trivial and totally unintentional mistake in the set-up (punching in
number of players, their names, etc) and it brought down the whole system.


The article (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092528)

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.

Probably redundant by now, but... (4, Funny)

EvanED (569694) | more than 7 years ago | (#18092530)

Hugh Thompson, who was interviewed by Slashdot on the dangers of e-voting, now has a cool blog entry on how he was able to bring down the gaming/movie console on an airplane

What, did they link /. to it?

The blog post (-1, Redundant)

Gothic_Walrus (692125) | more than 7 years ago | (#18092542)

I was able to get through to the post, but it took a VERY long time for it to load. Because the majority of comments so far are complaining about not being able to access it, here's the post in its entirety...

How to crash an in-flight entertainment system
Submitted by Hugh Thompson on Fri, 2007-02-09 16:08.


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.

Re:The blog post (1, Funny)

Gothic_Walrus (692125) | more than 7 years ago | (#18092578)

Shit. Beaten to it multiple times in the space of the two minutes it took me to put my post together. So much for noble intentions... >_

can you say? (0)

Anonymous Coward | more than 7 years ago | (#18092550)

interfering with a flight = crime? ONE WAY TRIP TO GITMO

Go look up "fortune" or something (3, Insightful)

Dun Malg (230075) | more than 7 years ago | (#18092564)

Fortunately the IFE system is totally disjoint from the avionics
"Fortunately"? Hardly has anything to do with fortune. See, they made it separate on purpose. Might as well have said "fortunately the IFE system isn't connected to the pilot's brain" or "fortunately the IFE system isn't connected to the oxygen in the cabin", for all the fucking sense it makes.

Re:Go look up "fortune" or something (1)

honkycat (249849) | more than 7 years ago | (#18092654)

Umm, I'm as big a fan of linguistic pedantry as anyone, but according to the OED:

fortunately, adv., In a fortunate manner; by or with good fortune, happily, luckily, successfully.
It certainly was good fortune for the passengers that it was separate. It's not that way by happenstance, but it's still fortunate. I think the word you want to get all huffy about is fortuitous.

fortuitous, a., That happens or is produced by fortune or chance; accidental, casual.

Re:Go look up "fortune" or something (0, Flamebait)

Dun Malg (230075) | more than 7 years ago | (#18092786)

Umm, I'm as big a fan of linguistic pedantry as anyone, but according to the OED:

fortunately, adv., In a fortunate manner; by or with good fortune, happily, luckily, successfully.
It certainly was good fortune for the passengers that it was separate.
Sorry, I have to disagree. "Fortune" strongly implies luck, even according to the OED. Luck or fortune have nothing to do with it. But even that is largely secondary to my primary point. There is no reasonable scenario which would ever put the IFE system in a position to affect the avionics, so mentioning the "fortune" of them being separate is utterly ridiculous.

Re:Go look up "fortune" or something (1)

SirTalon42 (751509) | more than 7 years ago | (#18092830)

As a previous poster higher up in the article mentioned, the entertainment system on a flight DID cause it to catch on fire, apparently each seat had its own system and it overheated and caused some issue with critical wires. It is still fortunate for the passengers that the system on their plane didn't have any flaws like that which COULD take down the flight.

Face it, you failed as a grammar nazi (but now you get a second chance to redeem yourself by correcting my mistakes in grammar ;-)

The word wasn't "fortune" (3, Informative)

Foerstner (931398) | more than 7 years ago | (#18093030)

The word wasn't "fortune," though. It was "fortunately." Unlike "fortune," "fortunately" does not imply that luck was involved. It simply means that it was a beneficial arrangement. The sentence in the summary does not imply, in any way, that mere luck is responsible for the arrangement of the avionics and entertainment systems. You invented that ridiculousness on your own. "Fortunately" is derived from "fortune," but that does not mean that they carry the same meaning, as any dictionary will tell you.

Another example...if I give you "a murderous look" it does not mean (or even imply) that I killed you, attempted to kill you, or even contemplated a violent act toward you. "Murder" and "murderous" are not as close in definition as they are in derivation.

Re:Go look up "fortune" or something (1)

idonthack (883680) | more than 7 years ago | (#18092848)

Obviously you've never worked with people that write software.

Old news (0, Redundant)

basslineshift (564949) | more than 7 years ago | (#18092568)

I read this somewhere over a week ago it seems.

Re:Old news (0)

Anonymous Coward | more than 7 years ago | (#18093086)

Welcome to slashdot. You must be new around here.

Not a big surprise (1)

alshithead (981606) | more than 7 years ago | (#18092574)

This is a system someone thought would not be attacked. Someone was obviously wrong. All systems need to be considered as targets and protected as best they can. There is always a trade off of security versus accessibility but I don't see that as the problem in this case. They went cheap, quick, and dirty and put a system into place where security was a minor concern at best.
 

Re:Not a big surprise (5, Insightful)

Detritus (11846) | more than 7 years ago | (#18092626)

It doesn't have to be an "attack", it can be something as simple as a stuck switch or a book placed on top of a keyboard. On an airplane, you have to consider the two-year-old who wants to play with the pretty buttons.

Re:Not a big surprise (0)

Anonymous Coward | more than 7 years ago | (#18092796)

There is always a trade off of security versus accessibility.

No there isn't. The system minus this bug is just as accessible as the system with this bug.

Re:Not a big surprise (1)

1u3hr (530656) | more than 7 years ago | (#18092846)

All systems need to be considered as targets and protected as best they can.

Why bother spending time and money protecting a Tetris system? In TFA, it failed, they reboot, it works. Sorry if you lose your high-score.

TFA? (5, Funny)

Pikoro (844299) | more than 7 years ago | (#18092594)

Wow, 5 entire copies of TFA in the comments so far... Do you people not browse the comments before you post?

Carefull, this may encourage people to actually RTFA...

Re:TFA? (0)

Anonymous Coward | more than 7 years ago | (#18092888)

It's called karma whoring. They're all fishing to try and be the one whose copy of the TFA gets modded up, ignoring the fact that by doing so they're violating copyright.

artciel (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092602)

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.

.

Hm. (4, Insightful)

JoshJ (1009085) | more than 7 years ago | (#18092628)

I'm not so sure I'd want to put my name out there as "the guy who brought down the computers on a plane". He'll be lucky not to land on the no-fly list, I think.

Re:Hm. (1)

f00Dave (251755) | more than 7 years ago | (#18092736)

I'm not so sure I'd want to put my name out there as "the guy who brought down the computers on a plane". He'll be lucky not to land on the no-fly list, I think.

Not anymore ... thank you, Slashdot, for the alt-press exposure! -grin-

Re:Hm. (3, Insightful)

evilviper (135110) | more than 7 years ago | (#18092778)

I'm not so sure I'd want to put my name out there as "the guy who brought down the computers on a plane"

A sad commentary on the state of freedom in this country.

Re:Hm. (1)

springbox (853816) | more than 7 years ago | (#18092826)

Well, I think that's a really sad idea. I noticed people in the article's comments were basically saying the same thing, as if he reached into the system and altered the code to do something bad. He crashed a non-critical system that was either poorly written or poorly tested using the expected input devices. Just goes to show how paranoid some people have become.

intent... (2, Insightful)

Animaether (411575) | more than 7 years ago | (#18092926)

sure, it wasn't critical - and I'd hate to have him get on a no-fly list or get fined or be banned from that airline.. or whatever.

But this isn't just some kid accidentally hitting that remote, changing things to 5, then playing.. or then realizing they can hit up a few more times.. and then playing.

This guy actually knew, in his mind, what was going on.. Not only that... at the point where things would go wrong, he actually paused, sat back, made the change that might make things go wrong and enjoyed the half-expected result.

That's intent, right there. If nothing else, he should be slapped around for making the rest of the cabin annoyed because their in-flight entertainment was interrupted for no good reason whatsoever - causing a flight attendant to be occupied with a task he/she should not have been occupied with, etc. etc.

If this guy wants to have fun with mucking about with systems, have him get his own in-flight entertainment system, or apply for a job at a place that makes these things / the software :P

That said.. yay that he found the bug.. I hope they fixed it now.

The FA (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092688)

Here's the article for those who can't access it:

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 a side note... (3, Informative)

Rackemup (160230) | more than 7 years ago | (#18092698)

On a recent Air Canada flight the flight attendant actually came on the PA to tell everyone that the in-flight entertainment system was being turned on for our use. She then proceeded to tell us to be sure we didn't push 4 of the buttons on the main screen or else the screen at your seat would crash and they would be unable to fix it in flight. I thought it strange that a computer entertainment system installed in an aircraft would be a "work in progress" instead of just installing a full-functional system. Among the buttons we were not to touch? Weather and Flight tracking...of course.

Yeah tell me about it .... (4, Interesting)

taniwha (70410) | more than 7 years ago | (#18092852)

I fly across the pacific a few times every year and they always warn people to take it easy and be patient with the IFE "or it will crash" - which is certainly true - without trying I managed to spend 10 hours staring at a Windows CE "some thing bad happened" dialog box .... couldn't even turn the damn thing off when I wanted to sleep

Re:Yeah tell me about it .... (1)

iocat (572367) | more than 7 years ago | (#18093116)

IFEs are basically like the movie WarGames. The only way to win is not to play. Put it on the map, turn on your iPod, and open a book or DS or PSP.

Re:As a side note... (2, Insightful)

mspohr (589790) | more than 7 years ago | (#18093070)

Last week I flew from SFO to Frankfurt on Lufthansa. Halfway through the 12 hour flight the entire entertainment system crashed and had to be reset... Imagine my surprise to see the Windows CE boot sequence on my screen...

I can't believe that people in the real world build systems based on such a piece of crap.

The article (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092748)

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 pornographic channels and play a few simple games. One such game consisted of a mechanic where players use their skills to manually manipulate their own penises while fondling the other passengers' genitals. I'm a big fan of Tetris, whose primary mechanic is similar to this; 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 my johnson 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 furiously jacked my cock 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's dick turns black.

The ones 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 our input devices 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.

Proof? (0)

Anonymous Coward | more than 7 years ago | (#18092772)

That reads like a great story, but where is the proof that it actually happened... or are we supposed to believe it because it was on the internets? Having already seen this story a number of times on other blogs, ALL of them with advertising, the author certainly would have a good profitable reason to make up the story.

Bug in the article too! (1)

mr_zorg (259994) | more than 7 years ago | (#18092776)

0 I think the author meant 0 < value <= 5 instead. If it was truely as written, it should accept any number, since that basically means 0 (value = 5) and 0 is always 5...

Re:Bug in the article too! (1)

mr_zorg (259994) | more than 7 years ago | (#18092788)

Ack, perhaps the author did exactly what I just did. Forgot to escape his < symbols... What I meant to say was:

0 < value = 5
I think the author meant 0 < value <= 5 instead. If it was truely as written, it should accept any number, since that basically means 0 < (value = 5) and 0 is always < 5...
Shoulda hit "preview". Doh.

Okay (4, Funny)

Mathness (145187) | more than 7 years ago | (#18092782)

Okay, who entered the number 5 and kept pushing +? Congratulation, you just crashed the server.

slashdotted (-1, Redundant)

Anonymous Coward | more than 7 years ago | (#18092900)

Since the server seems to be slashdotted I will paste the article below.

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.

Bring Down (1)

Tablizer (95088) | more than 7 years ago | (#18092904)

FBI spider sees 3 words: "bring down plane", and Dept. Homeland Security goes nuts.

Some of these systems run Linux, and how I got bla (5, Funny)

Samarian Hillbilly (201884) | more than 7 years ago | (#18092916)

I was coming back from a conference wearing a hat with a promenent penguin on it, when our in-flight system crashed. As it was re-booting it was obvious to some of the more tech-minded passengers that it was running through the Linux boot sequence. I started hearing calls of "lynch the guy with the penguin hat", from the seats behind me...

You can tell it's Linux when it crashes. (4, Interesting)

VirtualSquid (311810) | more than 7 years ago | (#18092922)

I suspect it might be fairly common for seat-back computers to crash?
I don't know enough about Linux to understand what it said on my screen when it was trying (and failing) to boot back up again:
http://washedashore.com/misc/inflight_error.jpg [washedashore.com]
(This was April 23, 2005, on a flight from Bucuresti Romania to NYC.)
-Ben

Re:You can tell it's Linux when it crashes. (1)

newt0311 (973957) | more than 7 years ago | (#18093062)

If I had to guess, I'd say that that was a custom initrd running through and testing the very basic commands (echo, ldd, etc.) to make sure that those worked. This is probably an embedded, super cut down system, since this would not make any sense to do in a normal desktop.

Re:You can tell it's Linux when it crashes. (3, Informative)

iabervon (1971) | more than 7 years ago | (#18093120)

Looks like the terminal was doing fine, but the server was down so it didn't have anything to run.

I crashed a gas station (0)

Anonymous Coward | more than 7 years ago | (#18092938)

I crashed out a whole gas station.. whoops. I wasn't trying to find a corner case, it just had very very VERY crappy code apparently. My apologies if the writer of the code reads slashdot, but seriously, come on! 8-) I think the instructions said to select grade of gas, select inside or outside, and THEN put the gas nozzle into the car. What I did (I think) was pull the nozzle, push "pay inside", then the grade. Anyway, I didn't do anything weird like mash buttons or anything, I just did it not in the exact order listed. The screen blanked out! OK, so I pulled out and went to the next pump. It was dead too! I drove by the others and saw they were all dead. Whoops. Yeah.. I left and went to a working gas station then. I've used the same style pumps (usually not doing the right order still) and haven't had them crash, so I think the software has been improved. But holy crap! You'd think it would have been SLIGHTLY tested before it was put in the field.

Geek Moron (0)

Anonymous Coward | more than 7 years ago | (#18092970)

So what do you do for X hours on a flight after the entertainment is gone, you selfish prick?! Hope the guy gets arrested when he lands! Anyone got a keylogger for this yet?

Future Flight..... (1)

IHC Navistar (967161) | more than 7 years ago | (#18092974)

Pilot: "Dave, set the autopilot for LAX so we'll be on time. We don't want to be late."

(click, click)

Autopilot: "I'm sorry, Dave. I'm afraid I can't do that."

Abuse case (3, Informative)

tcdk (173945) | more than 7 years ago | (#18092998)

He calls it one of the most interesting examples of a software 'abuse case' he has ever seen.
He doesn't get out much.... oh, on a plane?

I think it's more of a case of bad quality control. If the testing environment of the developers had contained a single "lets throw an exception" or maybe a "lets try to lock up a process at 100%" test, they would have see that they needed to at a bit of exception handling (in the first case).

But writing good test cases can be hard.

Anyway. I've seen code like this tons of times. Some people apparently have issues with (how hard can it be), so they use equal instead, but one day, the step value is changed from 1 to 2 (make it go directly from 99 to 101), or some routine fails and returns a default value of -1. And suddenly the code is in the twilight zone.

Anyway^2, I actually did find this rather un-interesting.

Way too much effort (2, Informative)

plsuh (129598) | more than 7 years ago | (#18093012)

Deliberately crashing the IFE system is no great accomplishment. At least some of the darn things crash themselves just fine with no abuse. I was on a Virgin Atlantic flight from Washington, DC to London a couple of years ago, and the IFE systems would crash on a regular basis by groups of four seats. You could be blissfully watching a movie and then poof, everything goes dark. The flight attendant would reset the system and then sometimes it would come back up and other times it would just sit there at a dark screen. Uptimes varied from 10 minutes to a couple of hours. Very, very frustrating, both for the kids trying to play but getting frustrated and cranky and for the parents trying to keep their sanity during an eight hour flight.

--Paul

cookie monster (5, Funny)

Tablizer (95088) | more than 7 years ago | (#18093022)

"Today, Sesame Street was brought down by the number 5"

Not connected to the avionics system.... (1)

stox (131684) | more than 7 years ago | (#18093034)

but it is connected to the sewage control system. Now we know the mysterious source of ice falling from the skies lately. Could it be?

TSA (2, Funny)

sidb (530400) | more than 7 years ago | (#18093050)

Who let that guy onto the plane with a brain over 3 ounces? Don't they know that thing is a deadly weapon? Heads are going to roll.

Similar Crash (2, Interesting)

Roger W Moore (538166) | more than 7 years ago | (#18093056)

Several years ago I managed to crash an in flight entertainment system on a united flight completely inadvertently. The system in question required only had a few games for free with the rest costing money to unlock. Since I objected to having to pay for the games I restricted myself to the free games until suddenly in the middle of a game of pong it got more and more sluggish until the screen freezes, goes black and the system reset itself. I went back into pong, cranked up the number of balls to the max allowed (4 IIRC) and noticed that now it would crash within a minute or two.

Playing around (there really was nothing better to do) I found that quickly wiggling the bat around with 4 balls on the screen would crash the system. After about the 4th or 5th crash the system came back up but this time with all the games enabled! After that I was careful not to crash the system but still about 30 minutes from landing it crashed again and came back up with only the free games.

I wondered at the time how such an easily triggered failure could have been overlooked. Unlike the article my crash only affected my screen...but at least there was some beneficial affect!

The Airline and Aircraft (3, Informative)

Spritzer (950539) | more than 7 years ago | (#18093076)

Based on the description of the IFE system and having recently flown and played a version of Tetris which fits his description ..... Delta 767 I'll see if I can confirm the hack without the crash (I guess I'm just too nice) next week.

Peanuts..... (1)

Taulin (569009) | more than 7 years ago | (#18093084)

This would be all true and believable if it weren't for the fact that airlines stopped serving peanuts on flights a few years ago due to allergy complaints. If you have had peanuts served to you lately, let me know what airline it was because I miss them!

How Long? (0)

Anonymous Coward | more than 7 years ago | (#18093160)

How long until he gets arrested for terrorism?

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...