[python] Buffer overflow na Win7?
Hynek Fabian
hynek.fabian na firma.seznam.cz
Čtvrtek Červenec 15 14:22:45 CEST 2010
slush (čtvrtek 15 Červenec 2010 11:35:04):
> Funguje. Musim rict "bohuzel", protoze duvodu, proc by melo zapnute
> bufferovani preskakovat EOF nerozumim.
Protoze nectes stranku primo od kernelu, ale jen nejaky buffer udrzovany libc?
Urcite s tim bude mit souvislost w+/a+ rezim - AFAIK ma tohle svoje vlastni
problemy s konkurencnim pristupem ktery by s tim mohly souviset.
> Taky nevidim souvislost, proc
> problem resi preseekovani na aktualni pozici.
Protoze to vysype buffer, takze pozice kterou ma kernel ve file deskriptoru
odpovida tomu co ma libc. Samozrejme by slo po kazdy operaci volat flush(),
ale tim by tak nejak zmizel duvod vubec bufferovani pouzivat :-)
> Budu muset jeste
> popremyslet, ktery hack je mensi zlo.
1) Nepouzivat w+ ale presypavat data z jednoho fd do druheho, a pak udelat
rename(). Jako bonus mas bezpecny fallback, kdyz se neco pos..., smazes novy
soubor a mas nezpracovany, ale aspon konzistentni data.
2) Pokud mermomoci potrebujes r/w pristup, tak je lepsi si cely soubor
mmapnout, coz cely ten bufferovaci cirkus v libc obchazi.
Další informace o konferenci Python