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.
/*Pri prekladu zakomentovat podle potreby*/ #define OS_LINUX_OPT #define OS_LINUX_USR_LOCAL #define OS_LINUX_USR #define OS_WINDOWS char* grabFile(char* filespec) { char p[256]; #ifdef OS_LINUX_USR strcat(p,"/usr/local/myprogram/"); strcat(p,filespec); #endif #ifdef OS_WINDOWS strcat(p,getProgramDirectory()); strcat(p,"\\"); strcat(p.filespec); #endif return p; }(Priznavam,ze tento kod neni bezpecny, snadno lze zpusobit preteceni) ... a tak nejak. Prikladem podobneho ucinneho vyuziti preprocesoru jsou zdrojove kody ke hre Wolfenstein 3D.
$HOME
, což může představovat vše od /home/vyskocil/usr/program
v práci, až po /homes/eva/xv/xvysko02/usr/program
ve škole getProgramDirectory()
, kterou si ovsem musite napsat.A pak je opravdu jedno, kde ten program je.
Tudiz si zavedeme: OS_LINUX_ANYWHERE
char* grabFile(char* filespec) { char p[256]; #ifdef OS_LINUX_ANYWHERE strcat(p,getProgramDirectory()); strcat(p,"/"); strcat(p,filespec); #endif return p; .... }
getProgramDirectory()
proste vezme nulty parametr prikazove radky
a odsekne z nej vse za poslednim lomitkem a je to. Tak se program
najde, at uz je kdekoliv.
namespace fs = boost::filesystem; // inicializace cesty fs::path tmpPath( FileOption, fs::native ); // pokud cesta neni kompletni // (neobsahuje C:\ nebo "/root/..") // pripoj pracovni adresar (workingDir) File = tmpPath.is_complete() ? tmpPath : workingDir/tmpPath; //spojeni cest if( !fs::exists( File ) ) { std::cerr << "\nerror: File " << File.string() << "\ndoes not exist.\n"; return 1; } else if( fs::is_directory( File ) ) { std::cerr << "\nerror: Argument for the file " << File.string() << "\nis a directory.\n"; return 1; }
samozrejme v cestach k souborum bude potreba zmenit lomitka za zpetna lomitkaTo je pěkná blbost.
Tiskni
Sdílej: