OpenSSH 3.3 - anonymni mmap

Jirka Kosina jikos na jikos.cz
Úterý Červen 25 13:26:47 CEST 2002


On Tue, 25 Jun 2002, Michal Krause 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.

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.

Nicmene, za zkousku nic nedate ;)

-- 
JiKos.




Další informace o konferenci Linux