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.
OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.
Řešení dotazu:
Odpověď na otázku už tu sice byla, ale některé další hrůzy mi nedají:
f = fopen("data.bin", "wb+"); if (errno !=0){
Funkce fopen()
signalizuje chybu tím, že vrátí nulový pointer, takže to je to, co byste měl testovat. Testovat chybu knihovní funkce porovnáním errno
na nulu je hrubá chyba; v případě úspěchu totiž není garantováno, že errno
bude nula, pouze při chybě máte jistotu, že errno
bude obsahovat odpovídající kód.
pole = (int*)calloc(delka, sizeof(int)); ... fwrite(&delka, sizeof(delka),1, f); ... fread(&vypis, sizeof(vypis), 1, f);
Tyhle funkce selhat nemohou? Zejména chybějící kontrola u alokace paměti je vděčným zdrojem bezpečnostních chyb. A kdybyste zkontroloval návratovou hodnotu fread()
, hned byste viděl, že je něco špatně, a neřešil byste obsah proměnné vypis
.
A konečně: na rozumný (a hlavně konzistentní) coding style je lepší si zvykat hned od začátku, když si jednou zvyknete pokaždé psát, jak vás zrovna napadne, později už se to těžko přeučuje.
Tyhle funkce selhat nemohou? Zejména chybějící kontrola u alokace paměti je vděčným zdrojem bezpečnostních chyb.Vazne? Skoro kazdej system ma neomezene "overcommit memory", takze alokace neselze a navic system nemapuje stranku, kde se nachazi NULL, takze pri pristupu program umre na SIGSEGV. Dost pochybuju, ze todle je casta bezpecnostni chyba.
Skoro kazdej system ma neomezene "overcommit memory"
Z jakého zdroje vycházíte? Pár jsem jich zkusil a všechny měly vm.overcommit_memory
nastavený na nulu,aniž bych to tak nastavoval, tj. distribuční default. Podle dokumentace je to i upstreamový default. Ale nepředstírám, že těch pár je statisticky významný vzorek, jak je na tom váš vzorek, ze kterého vycházíte?
system nemapuje stranku, kde se nachazi NULL
Třeba na S/390-64 nulový pointer dereferencovat jde.
takze pri pristupu program umre na SIGSEGV
Bezpečnostní chyba se může projevovat i jako DoS.
Tiskni
Sdílej: