Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.
Cheat Engine (Wikipedie) je s verzí 7.7 k dispozici už také pro Linux. Jedná se o proprietární skener/debugger paměti používaný především k cheatování v počítačových hrách.
Vláda USA nařídila společnosti Anthropic pozastavit přístup k modelům Fable 5 a Mythos 5 pro všechny cizince, včetně zaměstnanců Anthropicu.
Společnost Murena představila (YouTube) novou verzi 4.0 mobilního operačního systému /e/OS (Wikipedie) založeného na Androidu a LineageOS bez aplikací a služeb od Googlu.
V Arch User Repository (AUR) bylo kompromitováno přes 400 opomíjených balíčků (jejich seznam). Útočník do nich začlenil škodlivý npm balíček atomic-lockfile, který krade citlivá data uživatelů. Publikována byla předběžná analýza spouštěného malwaru deps.
Homebrew, správce balíčků nejen pro macOS, byl vydán ve verzi 6.0.0 (seznam změn). Hlavními novinkami jsou bezpečnostní mechanismus tap trust kvůli důvěryhodnosti závislostí, vylepšení sandboxingu na Linuxu, interní JSON API nebo zlepšení výkonu.
Byla nalezena a 9. června opravena kritická zranitelnost ve FreeBSD v Kernel TLS (KTLS). Pojmenována byla Bumsrakete (FreeBSD-SA-26:26.ktls, CVE-2026-45257). Lokální neprivilegovaný uživatel může přepisovat soubory, ke kterým má právo pouze pro čtení. Přepsáním setuid binárky a jejím spuštěním může získat roota. Na všech verzích od verze 13.0 vydané v dubnu 2021.
Vývojáři open source operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, se na síti 𝕏 pochlubili, že ReactOS zvládne počítačovou hru Half-Life.
Byla vydána nová verze 4.8 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.
Apple container dospěl do verze 1.0.0. Jedná se o open source nástroj pro spouštění linuxových kontejnerů na macOS postavený nad containerization. Napsaný je v programovacím jazyce Swift a optimalizovaný pro Apple silicon.
std::cerr<<"foo". To normálně funguje, dokud se k .so souboru nepřilinkuje nějaká jiná knihovna (odzkoušeno gomp nebo GL), pak to segfaultuje kdesi v libstdc++ (ostream); Přitom když se přeloží hlavní program pomocí g++, funguje to bez problémů.
Reportoval jsem to na ubuntí bugzillu, ale totéž se děje na debianu (lenny). Nevíte někdo co s tím? Nevím ani pořádně, jestli je to chyba libstdc++ nebo linkeru. Předpokládám, že půjde o nějakou statickou inicializaci čehosi, která se při dlopen neprovede? Přikládám kousky programů (ze zmíněného bugreportu).
main.c:
#include<dlfcn.h>
int main(void){
void* handle=dlopen("./libfoo.so",RTLD_NOW);
void(*foo)()=(void(*)())dlsym(handle,"foo");
foo();
return 0;
}
foo.cc:
#include<iostream>
extern "C" {
void foo() { std::cerr<<"foo"<<std::endl; }
}
Takhle to padá:
$ g++ foo.cc -o libfoo.so -fPIC -rdynamic -shared $ gcc main.c -o main -ldl $ ./main foo $ g++ foo.cc -o libfoo.so -fPIC -rdynamic -shared -lgomp ## navíc -lgomp → spadne $ ./main foozsh: segmentation fault (core dumped) ./main $ g++ main.c -o main -ldl ## main se kompiluje g++ místo gcc → nespadne $ ./main foo $A tohle mi prozrazuje gdb po pádu (při kompilaci s -g a použití libstdc++6-dbg):
(gdb) bt
#0 0x00007f81582c9e49 in std::uncaught_exception () at ../../../../src/libstdc++-v3/libsupc++/eh_catch.cc:136
#1 0x00007f8158294e04 in ~sentry (this=0x7fff3c47bbc0, __in_chrg=<value optimized out>) at /build/buildd/gcc-4.4-4.4.1/build/x86_64-linux-gnu/libstdc++-v3/include/ostream:408
#2 0x00007f8158295445 in std::__ostream_insert<char, std::char_traits<char> > (__out=..., __s=0x7f81590cf3be "foo", __n=3)
at /build/buildd/gcc-4.4-4.4.1/build/x86_64-linux-gnu/libstdc++-v3/include/bits/ostream_insert.h:110
#3 0x00007f815829502e in std::operator<< <std::char_traits<char> > (__out=..., __s=0x7f81590cf3be "foo")
at /build/buildd/gcc-4.4-4.4.1/build/x86_64-linux-gnu/libstdc++-v3/include/ostream:510
#4 0x00007f81590cf2e6 in foo () at foo.cc:3
#5 0x00000000004003a2 in main () at main.c:5
Co by s tím mohlo být? Díky moc.
/tmp$ ./main
fooSegmentation fault
$ LD_PRELOAD=/usr/lib/libgomp.so.1 ./main
foo
Vypada to, ze ta knihovna libgomp nema rada kdyz se nahrava pres dlopen. Ve vypisu nm knihovny libgomp neni nic podezrelyho. Zkusil jsem ten main zkompilovat s -lpthread a ani to nepomohlo.
Jediny co by se s tim jeste dalo delat je kouknout se na .init sekci ty knihovny libgomp pres readelf.
Ivan
Pokud k modulu rucne prilinkuji libsupc++, tak ta sranda funguje.
$ g++ foo.cc -o libfoo.so -fPIC -rdynamic -shared -lgomp -lsupc++
$ LD_PRELOAD=/usr/lib/libstdc++.so.6 ./main foo $Main (což je ve skutečnosti python) tedy musím obalit skriptem, ale to zase tolik nevadí.
Tiskni
Sdílej: