Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
Dobry den, mam nasledujici kod v C, prvni cast naalokuje pole retezcu s "boxes" radky a pro delku kazdeho retezce "BOXLEN+1" znaku. V tomto pripade je boxes rovno peti, kod tedy naalokuje misto pro pet retezcu.
V druhe casti kodu do kazdeho z peti retezcu nakopiruji nejaky text ("123"). Problem je vsak s poslednim retezcem (parts[4]), kdy mi program pri pokusu o jeho inicializaci pres strncpy hodi segmentation fault.
char **parts = (char **) malloc(boxes); for (int i = 0; i < boxes; i++) parts[i] = (char *) malloc(BOXLEN + 1); strncpy(parts[0], "123", BOXLEN); strncpy(parts[1], "123", BOXLEN); strncpy(parts[2], "123", BOXLEN); strncpy(parts[3], "123", BOXLEN); strncpy(parts[4], "123", BOXLEN);
Nevite prosim, cim by to mohlo byt?
parts = (char **) malloc(boxes * sizeof(char *));Pokud je velikost ukazatele jiná než 1, což je prakticky všude, je přepisována nepřidělená paměť. Moje další připomínky jsou více méně formální. Pokud je
boxes < 4
, pak je parts[3]
poslední zapisovatelný prvek. Pokud je boxes
makro nebo konstanta rovná nejméně pěti, o nic nejde.
Dalším problém může nastat, pokud BOXLEN < 4
, protože se řetězce "123"
s koncovým nulovým
znakem nevejdou do alokovaných prostorů.
Pokud jePokud jeboxes < 4
, pak jeparts[3]
poslední zapisovatelný prvek.
boxes < 5
, pak do parts[4]
nepůjde zapisovat, tedy přidělit adresu pro alokovaný řetězec.
char **parts = (char **) malloc(boxes * sizeof(char *));
A na to pozor.
Dalsi mene napadna chyba je v
strncpy(parts[4], "123", BOXLEN); kde by melo byt BOXLEN + 1, pokud tedy BOXLEN ma byt max. delka retezce (coz vyvozuju z alokace BOXLEN + 1 vyse). Jinak neni zajisten ukoncovaci null znak, protoze strncpy ho neresi.
Tiskni
Sdílej: