Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze
… více »Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.
The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.
Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.
Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.
Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.
Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Po roce bylo vydáno nové číslo magazínu Phrack: Phrack 72.
Řešení dotazu:
Proč tak silná slova - záludnost, překvapovat, problém, trpět? To chování je naprosto standardní a je popsáno snad v každé dokumentaci. Kdo používá syscally typu write()
přímo, měl by přece vědět, že mohou vrátit -1 nejen kvůli skutečné chybě, ale i proto, že byly přerušeny signálem (a nemusí to být zdaleka jen CHLD
). Řešení existují - od ruční kontroly errno
přes makro TEMP_FAILURE_RETRY, použití sigaction()
s nastavením příznaku SA_RETRY až po (dočasné) blokování signálu.
Navíc je to chování v řadě situací žádoucí: pokud budete mít např. síťového démona, jehož handler na TERM
jen nastaví příznak, na základě kterého se pak vyskočí z hlavní smyčky, tak právě toto chování vám umožní, aby démon skončil hned po obdržení signálu TERM
a ne až ve chvíli, kdy se připojí další klient.
Pokud jsem pouzil prilis silna slova, tak se omlouvam
Není potřeba se omlouvat, prostě jsem měl z vašeho dotazu pocit, že přerušení přerušitelných syscallů signálem (znovu zdůrazňuji, že se to týká všech signálů, nejen CHLD
) považujete za chybu nebo dokonce jakousi "past na programátory". Proto jsem se snažil (v posledním odstavci) naznačit, že existují velmi dobré důvody, proč se systém chová právě takto, a zmínit několik způsobů, jak se s tím (více či méně snadno) vypořádat.
void work() { ... } int main(int argc, char **argv) { ... sigset_t mask; sigfillset(&mask); // Blokneme všechny signály, takže se budou doručovat, jen když je čekám pthread_sigmask(SIG_BLOCK, &mask, nullptr); /* Vytvořím pracující vlákno; nová vlákna dědí masku, takže tohle vlákno * nedostane žádné signály, pokud na ně nebude čekat */ pthread_t worker; pthread_create(&worker, nullptr, &work, nullptr); // Čekám na signály sigemptyset(&mask); sigaddset(&mask, SIGINT); sigaddset(&mask, SIGQUIT); sigaddset(&mask, SIGTERM); ... // a další, co nás zajímají for (bool running = true; running;) { int sig = 0; sigwait(&mask, &sig); switch (sig) { case SIGINT: case SIGQUIT: case SIGTERM: running = false; break; ... // další signály } } ... // Oznámíme vláknu, že má skončit, a počkáme na něj int ret; pthread_join(&thread, &ret); return ret; // Hotovo :) }A pro komunikaci s druhým vláknem (informaci, že má skončit) můžete využít třeba eventfd — moje oblíbené, je to taková lehká roura, dá se na tom selectovat
Tiskni
Sdílej: