OpenSSH 3.3 - anonymni mmap

Michal Krause michal na krause.cz
Úterý Červen 25 13:38:48 CEST 2002


On 25/06/2002, Jirka Kosina wrote:

> > chtel jsem upgradovat na OpenSSH 3.3, jenze tam je pouzit anonymni mmap
> > (MAP_ANON), ktery je udajne implementovan pouze v jadrech 2.4.
> > Jde o nasledujici kus kodu:
> > #if  defined(HAVE_MMAP) && defined(MAP_ANON)
> >         address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED,
> >             -1, 0);
> >         if (address == MAP_FAILED)
> >                 fatal("mmap(%lu): %s", (u_long)size, strerror(errno));
> > #endif
> > Jak vidno, jde zrovna o funkci UsePrivilegeSeparation, kvuli ktere
> > upgrade delam. Nevyznam se v tom natolik, abych si byl jist, ze bude
> > fungovat nasledujici:
> > f = open("nejaky_tmp_soubor");
> > address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED, f, 0);
> > Je mozne to takhle udelat?
> 
> Pokud maet problem s tim, ze to potrebujete spoustet na 2.2.x jadre,
> tak primo takto to udelat nepujde, treba uz jen z toho duvodu, ze
> s tou kombinaci MAP_ANON|MAP_SHARED se Vam na 2.2 jadre nepovede
> mmap() uspesne zavolat.

Moje chyba, ten MAP_ANON jsem samozrejme minil vyhodit, takze spravne
takto:

f = open("nejaky_tmp_soubor", O_CREAT|O_RDWR);
address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_SHARED, f, 0);

> Otazkou je, za jakym ucelem presne ten MAP_SHARED v tom kodu maji. Coz
> lze tezko rict takhle z fleku - bud se ozve nejaky vetsi odbornik na
> ssh (Peak?), nebo do tech zdrojaku zkusim prilezitostne mrknout.

MAP_SHARED snad nebude problem, ne? Problem je v tom MAP_ANON.

> Nicmene, za zkousku nic nedate ;)

Copak o to, jestli to pujde zavolat, to zkusit muzu (zkusil jsem, jde
:), ale otazka zni, jestli to je tak spravne. Zkratka nerad bych si ve
snaze opravit jednu bezpecnostni chybu nezavlekl nejakou jinou (at uz
bezpecnostni ci funkcni).

S pozdravem
-- 
Michal Krause                                                       /\
                        Informace (nejenom) ze sveta Linuxu      /\/  \
email: michal na krause.cz _______ http://www.root.cz/ _______ NAVRCHOLU.cz

Vsetci by chceli byt van Goghmi, ale odrezat si ucho ani jeden.
                                                  J. Raz ve filmu Rabaka


Další informace o konferenci Linux