giovedì 31 dicembre 2009

Gara a chi scrive il programma in C col bug più innocente

This year’s challenge: losing my freakin’ luggage

% cat luggage.dat
1261959531 UA129086 UA530 ORD FRA

The evil part

Your program must inexplicably misroute a piece of luggage if the right kind of free text comment is provided by the check-in clerk. Misrouting means that your program’s output either places that luggage on the wrong flight, or fails to provide a record when it should.

Scoring and Extra Points

  • Your submission is worth more if it is short and easy to read. Hiding malicious behavior in short and readable source files is more impressive.
  • Your submission is always worth more if the bad behavior, once discovered, is plausibly deniable as a newbie coding mistake.
  • Your submission is worth more if the underhanded code does not look suspicious under syntax coloring.
  • Bonus points if the misrouting trigger looks innocent in retrospect.
  • Bonus points if luggage can be flexibly misrouted.
  • Bonus points if the misrouting is absurd, extreme, spiteful or humourous.
  • Spassosissimo contest: scrivere in linguaggio C un programmino che lavori su un archivio bagagli di compagnia aerea (come da esempio fornito), e in determinati casi (non necessariamente di qualche input sbagliato) faccia pasticci grossi (per esempio far perdere i bagagli).

    Il programmino però deve essere scritto in modo tale da passare una eventuale "ispezione visiva" e la parte di codice che genera il problema non deve destare sospetti.

    Si guadagnano più punti se l'errore, una volta scoperto (dunque non a prima vista) sembrerà da programmatore dilettante.

    Quasi quasi partecipo anch'io (il vincitore vince un bonus acquisti di cento dollari). Ci sono infatti alcune funzioni di libreria, come la snprintf, che sarebbero intese a controllare e limitare i problemi, e invece, se "sapientemente" utilizzate, fanno danni...

    Nessun commento:

    Posta un commento