SONERAN amatöörit tekivät ohjelmointi mokan!!

Soneran amatöörit tekivät alkeellisen virheen ohjelmoinnissa, kun he tekivät kahteen varajärjestelmäänkin saman mokan kuin varsinaiseen järjestelmään. Eilinen Soneran viestiliikenne jumittui sen vuoksi kun pankeissa maksuliikenne oli sekaisin ja ihmiset alkoivat yhtä aikaan soitella pankkeihin kun palkkarahoja yms. rahoja ei ollutkaan tullut tileillä

Yleensä matkapuhelinliikenteen ohjelmoinnissa käytetään C-kieltä ja nimenomaan ns. pino-ohjelmointia. Pinon käsittelyssä tarvitaan kahta osoitinta; toinen osoittaa pinon alkukohtaa, pohjaa ja toinen pinon huippua. Ohjelmassa käytetään kolmea staattista osoitinta top, bottom ja max_stack. Osoittimista ensimmäinen osoittaa pinon huippua, toinen pinon pohjaa ja kolmas paikkaa, jonka yli pino ei saa kasvaa. Lisäksi ohjelmassa on määritelty kaksi vakiota OUTSTACK ja STACKSIZE. Vakiota OUTSTACK käytetään osoittamaan, että on tapahtunut pinon yli- tai alivuoto, ja STACKSIZE, jolla määritellään pinon maksimikoko. Funktio push palauttaa arvonaan pinoon pistetyn kokonaisluvun tai arvon OUTSTACK, jos on tapahtunut pinon ylivuoto. Funktio pop palauttaa arvonaan alkion pinosta tai pinon alivuototilanteessa vakion OUTSTACK.

Pääohjelmassa varataan tila pinolle standardifunktiolla malloc. Paluuosoitin muunnetaan osoittimeksi kokonaislukuun muunnoksella (int*). Pääohjelmassa luetaan kokonaislukuja, jotka pinotaan pinoon ja tulostetaan pinon kokonaisluvut huipulta pohjaan. Soneran amatööriohjemoijat varasivat liian vähän tilaa pinolle, jossa on soitetut puhelut ja nettiliikenne odottavat saavansa yhteyden vastaanottajaan, max_stack = bottom STACKSIZE; elikkä allaolevassa esimerkkiohjelmassa pinossa olevien "puhelujen" määrä max_stack ylitti 100000 puhelun määrän (STACKSIZE=100000), jos STACKSIZE ylitetään ohjelma menee jumiin ja puhelut ei yhdisty. Soneran amatöörit eivät osaanneet varautua siihen että joskus puhelujen määrä voi olla yhtään aikaa esim. tämä kuviteltu 100000...ja he tekivät saman virheen myös varajärjestelmissä. Ja kuulemma Sonera ei vieläkään tiedä missä on vika, vaikka tälläinen tavallinen persu pystyy kahvipöydässä istumalla ja pullaa syodessä päättelemään missä oli vika.

Esimerkki ohjelma:

#include
#include
#define OUTSTACK 2147483647
#define STACKSIZE 1000000

int *top, *bottom, *max_stack;

int push( int item )
{
if (top < max_stac)
return *top = item;
else
{
printf(”Pinon ylivuoto\n”);
return OUSTACK;
}
}

int pop( void )
{
if (top > bottom)
return *--top;
else
{
printf(”Pinon alivuoto\n”);
return OUTSTACK;
}
}

int main(void)
{
int luku, ok;

bottom = top = (int *) malloc(STACKSIZE*sizeof(int));
max_stack = bottom STACKSIZE;

while ( scanf(”%d”,&luku)==1 )
{
ok = push(luku);
if ( ok==OUTSTACK ) break;
}

while (top > bottom)
printf(”%d \n”, pop());

return 0;
}
17105
Äänestä

Muut lukivat myös

Vastaukset 17

Vanhimmat

Niinniin-ainoastaan erittäin poikkeavassa VIKAtilanteessa systeemin signaalien määrä kumuloituu yli rajaarvojen. Pakkosyöttämällä vikatiloja ei muokkaa ohjelmaa, sumean logiikan systeemi muokkaantuu mutta samalla signaalien arvot muuntuu ja systeemistä tulee käyttökelvottomaksi. Perustilan signaalit vääristyvät ja signaalien osoitteet ei löydy

Niitä tunareita löytyy paikassa jos toinenkin

Äänestä

Niinniin-ainoastaan erittäin poikkeavassa VIKAtilanteessa systeemin signaalien määrä kumuloituu yli rajaarvojen. Pakkosyöttämällä vikatiloja ei muokkaa ohjelmaa, sumean logiikan systeemi muokkaantuu mutta samalla signaalien arvot muuntuu ja systeemistä tulee käyttökelvottomaksi. Perustilan signaalit vääristyvät ja signaalien osoitteet ei löydy

Niitä tunareita löytyy paikassa jos toinenkin

Äänestä

suuressa massassa nykykonfiguraatio tietokoneiden välisessä yhteyksissä aiheuttaa vikatilan osoittelu toiselle käyttöyksikölle vaikka informaatioliikenteen tarjoaja aiheuttaa poikkeama virtaan.

Tämä on käytännöllistä jos palvelutarjoaja tarvitsee omien häiriöiden poistamista verkossa olevan yksikön kautta ylläpitäkseen vääristynyttä informaatiovirtaa.

Äänestä
  • 1001) 001000! 000!!! 111000

    Äänestä

  • kvittra kirjoitti:

    1001) 001000! 000!!! 111000

    Ihme fscebookin CHF mpeg HTC Mbps

    Äänestä

  • CMYK lento

    Hrj lör Ace kirjoitti:

    Ihme fscebookin CHF mpeg HTC Mbps

    Äänestä

  • CMYK lento kirjoitti:

    5 numeroa

    Äänestä

  • Sanoivat mitä niiden käskettiin sanoa ja uskoo ken uskoo. Vuosikymmenet digitaaliset verkot toimi hyvin ja nyt ne on lyhyen ajan sisään kaatuneet elisalahdella, dnalla ja soneralla.

    Äänestä

  • kkfjdkdjfklkfjflffjf kirjoitti:

    Sanoivat mitä niiden käskettiin sanoa ja uskoo ken uskoo. Vuosikymmenet digitaaliset verkot toimi hyvin ja nyt ne on lyhyen ajan sisään kaatuneet elisalahdella, dnalla ja soneralla.

    Supo ja operaattorit tiputtivat vihollisten ja rikollisten valetukiasemia.

    Supo: Muut valtiot salakuunnelleet matkapuhelimia Suomessa:

    http://yle.fi/uutiset/supo_muut_valtiot_salakuunnelleet_matkapuhelimia_suomessa/7699031

    Äänestä

Jos Soneralla on samanlainen diili NSA:n kanssa kuin Microsoftillakin?

Äänestä
  • http://www.digitoday.fi/tietoturva/2004/02/17/sonera-pahoitteli-echelon-nimivalintaa/20047633/66

    On ollut jo ainakin viimeiset kymmenen vuotta, mutta ei se ole tämän ongelman syy. Luulen että nämä viimeaikaiset ongelmat on olleet jonkun (heh) vihulaisen harjoitteluja vain. Sitten kun aamulla herätessä kaikki kännykkäverkot on nurin, radio ei kuulu eikä tv näy ynnä edes nettiin emme pääse, voimmekin todeta että "poijjat, nythän me vastha kusessa olemmekin!"

    Äänestä

Ja enkö minä ole kieltänyt että pinon päältä ei oteta.

Äänestä

Noi vanhat kököt liukulukuihin, pinoihin ym. assembler-kamaan perustuvat typerät C-kieliset sössöt pitäisi kaikki kirjoittaa uusiksi.

Ne saisi kertaluokkaa luotettavammaksi siirtymällä nykyaikaiseen Delphi -ohjelmakehitysympäristöön.

Toimii niin Linux kuin Windows raudassakin. Eikä tarvii pinoista tai poneista huolehtia kenenkään, kun järjestelmä itse huolehtii.

Äänestä

Kommentoi aloitusta


C-kieli-persu kirjoitti:

Soneran amatöörit tekivät alkeellisen virheen ohjelmoinnissa, kun he tekivät kahteen varajärjestelmäänkin saman mokan kuin varsinaiseen järjestelmään. Eilinen Soneran viestiliikenne jumittui sen vuoksi kun pankeissa maksuliikenne oli sekaisin ja ihmiset alkoivat yhtä aikaan soitella pankkeihin kun palkkarahoja yms. rahoja ei ollutkaan tullut tileillä

Yleensä matkapuhelinliikenteen ohjelmoinnissa käytetään C-kieltä ja nimenomaan ns. pino-ohjelmointia. Pinon käsittelyssä tarvitaan kahta osoitinta; toinen osoittaa pinon alkukohtaa, pohjaa ja toinen pinon huippua. Ohjelmassa käytetään kolmea staattista osoitinta top, bottom ja max_stack. Osoittimista ensimmäinen osoittaa pinon huippua, toinen pinon pohjaa ja kolmas paikkaa, jonka yli pino ei saa kasvaa. Lisäksi ohjelmassa on määritelty kaksi vakiota OUTSTACK ja STACKSIZE. Vakiota OUTSTACK käytetään osoittamaan, että on tapahtunut pinon yli- tai alivuoto, ja STACKSIZE, jolla määritellään pinon maksimikoko. Funktio push palauttaa arvonaan pinoon pistetyn kokonaisluvun tai arvon OUTSTACK, jos on tapahtunut pinon ylivuoto. Funktio pop palauttaa arvonaan alkion pinosta tai pinon alivuototilanteessa vakion OUTSTACK.

Pääohjelmassa varataan tila pinolle standardifunktiolla malloc. Paluuosoitin muunnetaan osoittimeksi kokonaislukuun muunnoksella (int*). Pääohjelmassa luetaan kokonaislukuja, jotka pinotaan pinoon ja tulostetaan pinon kokonaisluvut huipulta pohjaan. Soneran amatööriohjemoijat varasivat liian vähän tilaa pinolle, jossa on soitetut puhelut ja nettiliikenne odottavat saavansa yhteyden vastaanottajaan, max_stack = bottom STACKSIZE; elikkä allaolevassa esimerkkiohjelmassa pinossa olevien "puhelujen" määrä max_stack ylitti 100000 puhelun määrän (STACKSIZE=100000), jos STACKSIZE ylitetään ohjelma menee jumiin ja puhelut ei yhdisty. Soneran amatöörit eivät osaanneet varautua siihen että joskus puhelujen määrä voi olla yhtään aikaa esim. tämä kuviteltu 100000...ja he tekivät saman virheen myös varajärjestelmissä. Ja kuulemma Sonera ei vieläkään tiedä missä on vika, vaikka tälläinen tavallinen persu pystyy kahvipöydässä istumalla ja pullaa syodessä päättelemään missä oli vika.

Esimerkki ohjelma:

#include
#include
#define OUTSTACK 2147483647
#define STACKSIZE 1000000

int *top, *bottom, *max_stack;

int push( int item )
{
if (top < max_stac)
return *top = item;
else
{
printf(”Pinon ylivuoto\n”);
return OUSTACK;
}
}

int pop( void )
{
if (top > bottom)
return *--top;
else
{
printf(”Pinon alivuoto\n”);
return OUTSTACK;
}
}

int main(void)
{
int luku, ok;

bottom = top = (int *) malloc(STACKSIZE*sizeof(int));
max_stack = bottom STACKSIZE;

while ( scanf(”%d”,&luku)==1 )
{
ok = push(luku);
if ( ok==OUTSTACK ) break;
}

while (top > bottom)
printf(”%d \n”, pop());

return 0;
}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu