Byly zveřejněny informace o kritické zranitelnosti CVE-2026-64600 pojmenované RefluXFS (technické detaily) v XFS. Je tam již od verze Linuxu 4.11, tj. rok 2017. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel může editovat libovolný soubor, například klidně zrušit rootovské heslo v /etc/passwd. Videoukázka na Vimeo. V upstreamu je zranitelnost opravena.
OpenAI / ChatGPT má dnes výpadky (OpenAI Status, DownDetector).
Poskytovatel hostingu svobodných/open-source projektů Codeberg po hlasování na valné hromadě vydal stanovisko k využívání LLM. Kvůli vytěžování infrastruktury a rostoucím cenám hardwaru, ale také hrozbám pro spolupráci v komunitě se k LLM staví kriticky. Nebude poskytovat hosting projektů vytvářených LLM agenty.
Jack Dorsey představil (𝕏) open source týmovou komunikační platformu Buzz (GitHub) s cílem snížit závislost na Slacku a GitHubu.
Poštovní klient Thunderbird byl vydán v nové verzi 153 s kódovým názvem Meadow. Jedná se o ESR (Extended Support Release) vydání. Přehled novinek v poznámkách k vydání. Vylepšuje OAuth. Thundermail lze používat bez instalace doplňku.
AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open source projekty. Jiří Eischmann v příspěvku Jak mění AI open source na svém blogu rozebírá několik trendů, které v open source v poslední době v souvislosti s AI pozoruje, a jak tyto trendy svět otevřeného softwaru mění (Inflace projektů, Zahlcení kontroly, Klesající motivace zveřejňovat kód).
Evropská komise (EK) vyměřila americké internetové společnosti Google pokutu 890 milionů eur (21,5 miliardy Kč) za porušení unijního nařízení o digitálních trzích (DMA). Firma se podle unijní exekutivy provinila tím, že ve vyhledávači Google Search upřednostňovala vlastní služby a že podnikům ukládala omezení, která jim bránila nasměrovat spotřebitele k alternativním, často levnějším nákupním kanálům na platformě Google Play.
… více »Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.
Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.
Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.
gcc test.cpp -o test -Wall -pedantic -pthread
a haze mi to chybu:
test.cpp: In function ‘void* PrintHello(void*)’:
test.cpp:8: error: cast from ‘void*’ to ‘int’ loses precision
a zdrojak je tento:
void *PrintHello(void *threadid)
{
int tid=(int)threadid;
printf("Hello World! It's me, thread #%d!\n", tid);
pthread_exit(NULL);
}
int main (int argc, char *argv[])
{
pthread_t threads[5];
int rc, t;
for(t=0; t<5; t++)
{
printf("In main: creating thread %d\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if(rc)
{
printf("ERROR; return code from pthread_create() is %d\n", rc);
return -1;
}
}
pthread_exit(NULL);
}
omlouvam se ze na vas vyrukuji asi s trivialnim dotazem, ale opravdu netusim co s tim.....
int tid=(int)(long)threadid;by mělo jít.
Trochu mi vrtá hlavou, co vede člověka k použití '-pedantic' při překladu zdrojáku, kde se přetypovává void* na int… :-)
Buď to překládejte s méně striktními parametry nebo to předání proveďte čistším způsobem.
int (64-bitová platforma?), pak tam prostě ke ztrátě informace dochází. Překladač nemůže vědět, že to nevadí, protože to stejně vždycky voláte s pointerem, který sám vznikl přetypováním z int.
Na x86 je šířka intu stejná nebo menší než šířka pointeru, ale jinde to tak být nemusí.
Já osobně bych to ale řešil tak, že bych předávat pointer na int (nebo rovnou na nějakou strukturu, pokud bude potřeba více dat). Ale pozor aby ses nespálil (nepřepsal si něco pod rukama dříve, než to to vlákno přečte), taky bys měl dbát na uvolňování paměti.
unsigned long long tid=(unsigned long long)threadid;
printf("Hello World! It's me, thread #%llu!\n", tid);
i když by se jistě našlo něco lepšího či přenositelnějšího.
P.S. A je docela možné, že ten zdroják v c++ budete muset kompilovat třeba g++, ne jen gcc.
Stálo by za to označit, která z řádek programu je řádka 8, na které to tu chybu hlásí
Jinak, potenciální problémy tam vidím tyto:
PrintHello() nemá stanovenou výchozí hodnotu, přestože je deklarovaná jako vracející void *; vím, že ve skutečnosti se ta funkce nikdy nevrátí, ale překladač to IMHO neví a může ho to mást. Doplnil bych fiktivní return NULL. To samé platí pro main().PrintHello(), by měla pouze napsat pozdrav; rozhodně ne vypsat pozdrav a pak ukončit thread! Buď přejmenovat na PrintHelloAndExit, nebo dát ukončení threadu někam jinam. Kdyby se taková funkce vyskytovala ve skutečné aplikaci, bude to ošklivá nášlapná mina na každého, kdo bude ten program udržovat nebo upravovat.pthread_exit() jsou v daném kódu úplně zbytečná; hlavní funkce threadu může svůj výstupní ukazatel prostě vrátit (proto je deklarována jako vracející void *; hlavní funkce programu taktéž.tid, je matoucí, protože skutečný TID (ten, který se získá voláním funkce gettid()) je něco úplně jiného. Opět ošklivá nášlapná mina, zvlášť proto, že skutečný TID je také celé číslo.Funkce PrintHello() nemá stanovenou výchozí hodnotu, přestože je deklarovaná jako vracející void *; vím, že ve skutečnosti se ta funkce nikdy nevrátí, ale překladač to IMHO neví a může ho to mást. Doplnil bych fiktivní return NULL. To samé platí pro main().Překladač to ví.
Štábní kultura: funkce, která se jmenuje PrintHello(), by měla pouze napsat pozdrav; rozhodně ne vypsat pozdrav a pak ukončit thread! Buď přejmenovat na PrintHelloAndExit, nebo dát ukončení threadu někam jinam. Kdyby se taková funkce vyskytovala ve skutečné aplikaci, bude to ošklivá nášlapná mina na každého, kdo bude ten program udržovat nebo upravovat.To by pak mělo na konci jména mít AndExit nějakých 90 % funkcí pro vlákna, co se v programech kdy vyskytují
A pthread_exit v main() se mi nelíbí ani trochu.
PrintHello nelze vyčíst, že je to hlavní funkce vlákna. Kdyby se jmenovala, dejme tomu, HelloThreadMain, bylo by hned jasno.
Kdyby to byla knihovní funkce, která dejme tomu vykreslí nějaké logo, tak se může klidně stát, že ji někdo vyvolá ze singlethreadového programu, a žuch.
A pthread_exit v main() se mi nelíbí ani trochu.Niekedy to volanie môže myť zmysel. Ak tam je, tak sa počká, kým sa všetky vlákna ukončia (a až potom sa ukončí aj hlavné vlákno). Práve v tom príklade to zmysel má, kedže tam nie je žiadne čakanie na to, až urobia tie vytvorené vlákna to, čo urobiť majú.
unsigned long long tid=(unsigned long long)threadid;
printf("Hello World! It's me, thread #%llu!\n", tid
tak:
int tid=(int)(long)threadid;
nutno kompilovat s g++
dekuji vsem kteri prispeli k vyreseni meho problemu, dekuji i tem kteri me poucili o štábní kultuře, v budoucnu az ziskam urcite zkusenosti se ji budu urcite ridit....
Tiskni
Sdílej: