utempter na 64-bitach

Jan Rękorajski baggins w sith.mimuw.edu.pl
Wto, 21 Wrz 2010, 13:51:43 CEST


[wtorek, 21 wrzesień 2010], Adam Osuchowski napisał(a):

> Jan Rękorajski wrote:
> > Czy jesteś tego pewny?
> > /usr/include/bits/utmpx.h mówi że coś Ci się pomerdało.
> 
> A dokładniej to co mi się pomerdało?

To co wyciąłeś sugerowało że utmpx.ut_tv ma 32 bity (ma 2*32),
ale już widzę że nie na te typy patrzyłem co trzeba.

>>>Na x86-64 jest problem z utempterem. Struktura utmpx ma czas trzymany
>>>zawsze na 32 bitach (dla celów przenośności) ale utempter wypełnia go
>>>za pomocą gettimeofday(), która to na x86-64 zwraca czas 64-bitowy.
>>>W rezultacie mamy ładny buffer overflow, który psuje resztę pól utmpx.

Po wyjaśnieniu tego nieporozumienia zaaplikowałem twoją łatkę, nowy
utempter powinien się dziś pojawić na ftp.

-- 
Jan Rękorajski            |  ALL SUSPECTS ARE GUILTY. PERIOD!
baggins<at>mimuw.edu.pl   |  OTHERWISE THEY WOULDN'T BE SUSPECTS, WOULD THEY?
BOFH, MANIAC              |                   -- TROOPS by Kevin Rubio


Więcej informacji o liście dyskusyjnej pld-devel-pl